Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

合計桁数の再帰積JavaScript


任意の数の引数(数値リテラル)を受け取り、それらを加算し、答えが1桁しかない場合は、桁の積を返す関数を作成する必要があります。

例-

引数が-

の場合
16, 34, 42

最初にそれらを足し合わせる必要があります-

16+34+42 = 92

そして、次のような1桁の数字が得られるまで、数字を掛け続けます-

9*2 = 18
1*8 = 8

1桁の数値を取得したら、関数から返す必要があります。

これを2つの関数に分割します-

  • 1つの関数は数値を受け取り、その数字の積を返します。再帰を使用してこれを行います。この最初の関数product()を呼び出しましょう。

  • 2番目の関数は、このproduct()関数を再帰的に呼び出し、製品が1桁であるかどうかを確認し、それ以外の場合は製品を返します。

この機能全体のコードは-

になります

const recursiveMuliSum = (...numbers) => {
   const add = (a) => a.length === 1 ? a[0] : a.reduce((acc, val) => acc+val);
   const produce = (n, p = 1) => {
      if(n){
         return produce(Math.floor(n/10), p*(n%10));
      };
      return p;
   };
   const res = produce(add(numbers));
   if(res > 9){
      return recursiveMuliSum(res);
   }
   return res;
};
console.log(recursiveMuliSum(16, 28));
console.log(recursiveMuliSum(16, 28, 44, 76, 11));
console.log(recursiveMuliSum(1, 2, 4, 6, 8));

出力

コンソールの出力は-

になります
6
5
2

  1. JavaScriptで数値の数字を区切る

    ユーザーに入力を提供するJavaScriptプログラムを作成する必要があります。ユーザーが値を入力してボタンを押すと、関数は入力が有効な数値であるかどうかを確認する必要があります。有効な数値である場合、プログラムは数値のすべての桁を個別に画面に出力する必要があります。 例-入力が-の場合 43354 その場合、画面の出力は-になります。 43354 この関数のコードを書いてみましょう- このためのコードは-になります HTML <!DOCTYPE html> <html>    <head>     &nb

  2. JavaScriptの数値の桁の積和差

    問題 数値nを受け取るJavaScript関数を作成する必要があります。この関数は、その数値のすべての桁の合計と積の絶対差を見つける必要があります。 例 以下はコードです- const num = 434312; const sumProductDifference = (num = 1) => {     const sum = String(num)         .split('')         .reduce((acc, val) => acc +