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

JavaScriptでウラム数列を作成するにはどうすればよいですか?


数学者ウラムは、次のように任意の正の整数n(n> 0)から数列を生成することを提案しました-

If n is 1, it will stop.
if n is even, the next number is n/2.
if n is odd, the next number is 3 * n + 1.
continue with the process until reaching 1.

最初のいくつかの整数の例を次に示します-

2->1
3->10->5->16->8->4->2->1
4->2->1
6->3->10->5->16->8->4->2->1
7->22->11->34->17->52->26->13->40->20->10->5->16->8->4->2->1

数値を受け取り、その数値で始まるウラム数列を返すJavaScript関数を作成する必要があります。

このためのコードは-

になります
const num = 7;
const generateUlam = num => {
   const res = [num];
   if(num && num === Math.abs(num) && isFinite(num)){
      while (num !== 1) {
         if(num % 2){
            num = 3 * num + 1
         }else{
            num /= 2;
         };
         res.push(num);
      };
   }else{
      return false;
   };
   return res;
};
console.log(generateUlam(num));
console.log(generateUlam(3));

出力

そして、コンソールの出力は-

になります
[
   7, 22, 11, 34, 17, 52, 26,
   13, 40, 20, 10, 5, 16, 8,
   4, 2, 1
]
[
   3, 10, 5, 16,
   8, 4, 2, 1
]

  1. JavaScriptで数値を因数分解する

    引数として正の整数をとるJavaScript関数を作成する必要があります。関数は、入力された数値を正確に除算するすべての数値の配列を作成して返す必要があります。 例- 入力番号が-の場合 const num = 12; その場合、出力は-になります。 const output = [1, 2, 3, 4, 6, 12]; 例 以下はコードです- const findFactors = (num = 1) => {    let half = Math.floor(num / 2);    const res = [1]; // 1 wil

  2. JavaScriptで回文数を作成するためのステップを数える

    問題 最初で唯一の引数として数値numを受け取るJavaScript関数を作成する必要があります。 私たちの関数は、回文を取得するために必要な特別なステップの数を返す必要があります。特別な手順は、「数字を逆にして、元の番号に追加する」です。結果の数が回文ではない場合は、結果の数が回文になるまで合計を使用して手順を繰り返します。 たとえば、関数への入力が-の場合 入力 const num = 87; 出力 const output = 4; 出力の説明 関係する手順は-であるため 87 + 78 = 165; 165 + 561 = 726; 726 + 627 = 1353