Ebben a példában megtanul írni egy programot JavaScript-ben, hogy Armstrong számot találjon két egész érték között.
A példa megértéséhez ismernie kell a következő JavaScript programozási témákat:
- JavaScript for loop
A pozitív egész számot Armstrong-számnak nevezzük ( n sorrendben ), ha:
abcd… = a n + b n + c n + d n +…
Armstrong 3 jegyű száma esetén az egyes számjegyek kockáinak összege megegyezik magával a számmal. Például a 153 Armstrong-szám, mert:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Hasonlóképpen, 1634 Armstrong-szám, mert:
1634 = 1 * 1 * 1 * 1 + 6 * 6 * 6 * 6 * + 3 * 3 * 3 * 3 + 4 * 4 * 4 * 4
A program kipróbálása előtt látogassa meg a JavaScript programot az Armstrong szám ellenőrzéséhez.
Példa: Armstrong számai két intervallum között
// 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 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); ) )
Kimenet
Adjon meg pozitív alacsony egész értéket: 8 Írjon be pozitív, pozitív egész értéket: 500 Armstrong számok: 8 9 153 370 371 407
A fenti programban a felhasználó két egész szám megadását kéri. Az egyik az alsó intervallum egésze, a másik pedig a magasabb egész szám.
A parseInt()
numerikus karakterlánc értékét egész számra konvertálja.
A for
hurok a felhasználó által megadott két szám végighurcolására szolgál.
A toString()
módszert a szám karakterláncokká alakítására használják. A length
tulajdonság pedig a karakterlánc hosszának meghatározására szolgál. Ennélfogva ebben az esetben length
megadja a szám összes számjegyét.
let numberOfDigits = i.toString().length;
Az első for
hurok iterációjában ( i = 8 )
- A felhasználó által beírt alsó számot egy ideiglenes változó tárolja
temp
. - A szám
while
ismétlésére egy hurok szolgál.- A modulus operátort
%
használjuk az egyes számjegyek megszerzéséhez. Ha egy számot elosztunk 10-vel , a maradék az utolsó számjegy. Az első iterációban 8-at8 % 10
ad . - A fennmaradó részt megszorozzuk az abban a számban szereplő számok számával (itt 1 ), és kiszámoljuk az összeget.
- A számjegyet elosztjuk 10-vel az utolsó számjegy eltávolításához, azaz
8 / 10
0-t adunk.
- A modulus operátort
- Végül az összeget összehasonlítjuk a felhasználó által megadott számmal. Ha az összeg és a szám megegyezik, az Armstrong-szám jelenik meg.
A hurok folytatódik mindazon számok esetében, amelyek a felhasználó által megadott alsó és felső határ között vannak. A fenti példában a ciklust 8 és 500 között hajtják végre .