Programma Kotlin per controllare il numero Armstrong

In questo programma imparerai a controllare se un dato numero è un numero Armstrong oppure no. Imparerai a farlo usando un ciclo while in Kotlin.

Un numero intero positivo è chiamato numero Armstrong di ordine n se

abcd … = a n + b n + c n + d n + …

In caso di un numero Armstrong di 3 cifre, la somma dei cubi di ciascuna cifra è uguale al numero stesso. Per esempio:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 è un numero Armstrong. 

Esempio 1: controllare il numero Armstrong per un numero a 3 cifre

 fun main(args: Array) ( val number = 371 var originalNumber: Int var remainder: Int var result = 0 originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), 3.0).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") ) 

Quando esegui il programma, l'output sarà:

 371 è un numero Armstrong.
  • Primo, il valore di un dato numero (numero) viene memorizzato in un'altra variabile intera, originalNumber. Questo perché dobbiamo confrontare i valori del numero finale e del numero originale alla fine.
  • Quindi, un ciclo while viene utilizzato per eseguire il ciclo di originalNumber finché non è uguale a 0.
    • Ad ogni iterazione, l'ultima cifra di num viene memorizzata nel resto.
    • Quindi, il resto viene alimentato da 3 (numero di cifre) utilizzando la Math.pow()funzione e aggiunto al risultato.
      Qui, il resto viene convertito in Doubleperché powaccetta solo Doubleparametri e il suo valore viene nuovamente convertito inInt
    • Quindi, l'ultima cifra viene rimossa da originalNumber dopo la divisione per 10.
  • Infine, vengono confrontati il ​​risultato e il numero. Se uguale, è un numero Armstrong. In caso contrario, non lo è.

Ecco il codice Java equivalente: Programma Java per controllare il numero Armstrong

Esempio 2: controllare il numero Armstrong per n cifre

 fun main(args: Array) ( val number = 1634 var originalNumber: Int var remainder: Int var result = 0 var n = 0 originalNumber = number while (originalNumber != 0) ( originalNumber /= 10 ++n ) originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), n.toDouble()).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") )

In questo programma, abbiamo usato due cicli while. Il primo ciclo while viene utilizzato per contare il numero di cifre nel numero.

Quindi, originalNumber viene ripristinato al numero specificato.

Il secondo ciclo while controlla quindi se il numero è armonioso o meno.

Visita questa pagina per scoprire come visualizzare tutti i numeri armstrong tra due intervalli.

Articoli interessanti...