Program Kotlin do sprawdzania numeru Armstronga

W tym programie nauczysz się sprawdzać, czy podana liczba jest liczbą Armstronga, czy nie. Nauczysz się tego robić, używając pętli while w Kotlinie.

Dodatnią liczbę całkowitą nazywamy liczbą Armstronga rzędu n, jeśli

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

W przypadku liczby Armstronga składającej się z 3 cyfr, suma sześcianów każdej cyfry jest równa samej liczbie. Na przykład:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 to liczba Armstronga. 

Przykład 1: Sprawdź 3-cyfrowy numer Armstronga

 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.") ) 

Po uruchomieniu programu wynik będzie następujący:

 371 to numer Armstrong.
  • Po pierwsze, podana wartość liczbowa (liczba) jest przechowywana w innej zmiennej całkowitej, originalNumber. Dzieje się tak, ponieważ musimy porównać wartości liczby końcowej i liczby pierwotnej na końcu.
  • Następnie pętla while jest używana do przechodzenia przez originalNumber, aż będzie równa 0.
    • W każdej iteracji ostatnia cyfra num jest przechowywana w pozostałej części.
    • Następnie reszta jest zasilana przez 3 (liczbę cyfr) za pomocą Math.pow()funkcji i dodawana do wyniku.
      Tutaj reszta jest konwertowana na, Doubleponieważ powakceptuje tylko Doubleparametry, a jej wartość jest ponownie konwertowana naInt
    • Następnie ostatnia cyfra jest usuwana z oryginalnego numeru po podzieleniu przez 10.
  • Na koniec porównuje się wynik i liczbę. Jeśli jest równa, jest to liczba Armstrong. Jeśli nie, to nie jest.

Oto równoważny kod Java: Program Java do sprawdzania numeru Armstronga

Przykład 2: Sprawdź numer Armstrong pod kątem n cyfr

 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.") )

W tym programie użyliśmy dwóch pętli while. Pierwsza pętla while służy do zliczania liczby cyfr w liczbie.

Następnie oryginalny numer jest przywracany do podanej liczby.

Druga pętla while sprawdza, czy liczba jest armstrong, czy nie.

Odwiedź tę stronę, aby dowiedzieć się, jak wyświetlić wszystkie liczby Armstronga między dwoma interwałami.

Interesujące artykuły...