ある間隔でアームストロング数を見つけるJavaScriptプログラム

正の整数は、アームストロング数と呼ばれます(次数) n)if:

abcd... = an + bn + cn + dn + ...

3桁のアームストロング数の場合、各桁の立方体の合計はその数自体に等しくなります。 例えば、 153 はアームストロング数です。理由は次のとおりです。

153 = 1*1*1 + 5*5*5 + 3*3*3

同様に、 1634年 はアームストロング数です。理由は次のとおりです。

1634 = 1*1*1*1 + 6*6*6*6* + 3*3*3*3 + 4*4*4*4

このプログラムを試す前に、JavaScriptプログラムにアクセスしてアームストロング数を確認してください。


例:2つの区間の間のアームストロング数

// program to find Armstrong number between intervals

// take an input
const lowNumber = parseInt(prompt('Enter a positive low integer value: '));
const highNumber = parseInt(prompt('Enter a positive high integer value: '));

console.log ('Armstrong Numbers:');

// looping through lowNumber to highNumber
for (let i = lowNumber; i <= highNumber; i++) {

    // converting number to string 
    let numberOfDigits = i.toString().length;

    let sum = 0;

    // create a temporary variable
    let temp = i;

    /* loop through a number to find if 
    a number is an Armstrong number */
    while (temp > 0) {

        let remainder = temp % 10;
        sum += remainder ** numberOfDigits;
        // removing last digit from the number
        temp = parseInt(temp / 10); // convert float into integer
    }
 
    if (sum == i) {
        console.log(i);
    }
}

出力

Enter a positive low integer value: 8
Enter a positive high integer value: 500
Armstrong Numbers: 
8
9
153
370
371
407

上記のプログラムでは、ユーザーは2つの整数を入力するように求められます。 1つは低い間隔の整数で、もう1つは高い整数値です。

ザ・ parseInt() 数値文字列値を整数値に変換します。

ザ・ for loopは、ユーザーが指定した2つの数値をループするために使用されます。

ザ・ toString() メソッドは、数値を文字列に変換するために使用されます。 そしてその length プロパティは、文字列の長さを見つけるために使用されます。 したがって、この場合、 length 数字の合計桁数を示します。

let numberOfDigits = i.toString().length;

最初に for ループ反復(i = 8)、

  1. ユーザーが入力した小さい方の数値は一時変数に格納されます temp
  2. A while ループは番号を繰り返すために使用されます。
    1. ザ・ モジュラス演算子 % 各桁番号を取得するために使用されます。 数をで割ったとき 10、余りは最後の桁です。 最初の反復では、 8 % 10 与える 8
    2. 余りはその数の桁数で乗算されます(ここでは 1)そして合計が計算されます。
    3. 桁はで除算されます 10 最後の桁を削除します。 8 / 10 0を与えます。
  3. 最後に、合計がユーザーが入力した数値と比較されます。 合計と数が等しい場合、アームストロング数が表示されます。

ループは、ユーザーが指定した下限と上限の間にあるすべての数値に対して続行されます。 上記の例では、ループは 8500



Hope this helps!

Source link