In questo esempio, imparerai a scrivere un programma in JavaScript per verificare se un numero è un numero Armstrong o meno.
Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione JavaScript:
- Operatori JavaScript
- JavaScript while e do … while 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
Esempio 1: controllare il numero Armstrong di tre cifre
// program to check an Armstrong number of three digits let sum = 0; const number = prompt('Enter a three-digit positive integer: '); // create a temporary variable let temp = number; while (temp> 0) ( // finding the one's digit let remainder = temp % 10; sum += remainder * remainder * remainder; // removing last digit from the number temp = parseInt(temp / 10); // convert float into integer ) // check the condition if (sum == number) ( console.log(`$(number) is an Armstrong number`); ) else ( console.log(`$(number) is not an Armstrong number.`); )
Produzione
Immettere un numero intero positivo di tre cifre: 153 153 è un numero Armstrong.
Il programma di cui sopra riceve un input dall'utente. Poi,
- Il numero inserito dall'utente viene memorizzato in una variabile temporanea
temp
. - Un
while
ciclo viene utilizzato per iterare un valore a tre cifre.- 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,153 % 10
dà 3 . - Il cubo della cifra rimanente viene calcolato moltiplicando la cifra tre volte. E il cubo viene aggiunto alla
sum
variabile. - La cifra viene divisa per 10 per rimuovere l'ultima cifra.
- Il
while
ciclo continua a iterare e dividere il numero per 10 finché il numero non è 0 .
- L' operatore modulo
- Infine, la somma viene confrontata con il numero inserito dall'utente. Se la somma e il numero sono uguali, il numero è un numero Armstrong.
Nota : nel programma precedente, il cubo di un numero potrebbe essere calcolato utilizzando un operatore esponente **
. Per esempio,sum += remainder ** 3;
Esempio 2: controllare il numero Armstrong di n cifre
// program to check an Armstrong number of n digits // take an input const number = prompt("Enter a positive integer"); const numberOfDigits = number.length; let sum = 0; // create a temporary variable let temp = 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 == number) ( console.log(`$(number) is an Armstrong number`); ) else ( console.log(`$(number) is not an Armstrong number.`); )
Produzione
Immettere un numero intero positivo: 92727 92727 è un numero Armstrong
Nel programma precedente, viene controllato un numero Armstrong di n cifre.
Quando l'utente inserisce un numero, viene considerato come una stringa. La length
proprietà restituisce la lunghezza di una stringa.
Il numero inserito dall'utente viene memorizzato in una temp
variabile. E un while
ciclo viene utilizzato per iterare fino a quando il suo valore è inferiore a 0 . Ogni cifra del numero viene elevata alla potenza della lunghezza del numero.