In questo esempio, imparerai a scrivere un programma in JavaScript per trovare un numero Armstrong tra due valori interi.
Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione JavaScript:
- JavaScript per loop
Un numero intero positivo è chiamato numero Armstrong (di ordine n ) se:
abcd … = a n + b n + c n + d n + …
Nel caso di un numero Armstrong di 3 cifre, la somma dei cubi di ciascuna cifra è uguale al numero stesso. Ad esempio, 153 è un numero Armstrong perché:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Allo stesso modo, 1634 è un numero Armstrong perché:
1634 = 1 * 1 * 1 * 1 + 6 * 6 * 6 * 6 * + 3 * 3 * 3 * 3 + 4 * 4 * 4 * 4
Prima di provare questo programma, visitare il programma JavaScript per controllare il numero Armstrong.
Esempio: numeri Armstrong tra due intervalli
// 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); ) )
Produzione
Immettere un valore intero positivo basso: 8 Immettere un valore intero positivo alto: 500 Numeri Armstrong: 8 9153 370371407
Nel programma precedente, all'utente viene richiesto di inserire due numeri interi. Uno è il numero intero inferiore dell'intervallo e un altro è il valore intero più alto.
Il parseInt()
converte il valore stringa numerica in un valore intero.
Il for
ciclo viene utilizzato per scorrere i due numeri forniti dall'utente.
Il toString()
metodo viene utilizzato per convertire il numero in una stringa. E la length
proprietà viene utilizzata per trovare la lunghezza di una stringa. Quindi, in questo caso, length
fornisce le cifre totali del numero.
let numberOfDigits = i.toString().length;
Nella prima for
iterazione del ciclo ( i = 8 ),
- Il numero più basso inserito dall'utente viene memorizzato in una variabile temporanea
temp
. - Un
while
ciclo viene utilizzato per iterare il numero.- L' operatore modulo
%
viene utilizzato per ottenere ogni numero di cifre. Quando un numero viene diviso per 10 , il resto è l'ultima cifra. Nella prima iterazione,8 % 10
dà 8 . - Il resto viene moltiplicato per il numero di cifre in quel numero (qui 1 ) e la somma viene calcolata.
- La cifra viene divisa per 10 per rimuovere l'ultima cifra, ovvero
8 / 10
dà 0.
- L' operatore modulo
- Infine, la somma viene confrontata con il numero inserito dall'utente. Se la somma e il numero sono uguali, viene visualizzato il numero Armstrong.
Il ciclo continua per tutti i numeri che si trovano tra i limiti inferiore e superiore forniti dall'utente. Nell'esempio sopra, il ciclo viene eseguito da 8 a 500 .