Java-programm Armstrongi numbri kontrollimiseks

Selles programmis õpite kontrollima, kas antud number on armstrongi number või mitte. Õpite seda tegema, kasutades Java-s for for loop ja while-silmust.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:

  • Java ajal ja tee … Loopi ajal
  • Java kui … muidu avaldus
  • Java aasale

Positiivset täisarvu nimetatakse Armstrongi arvuks, kui n

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

Armstrongi 3-kohalise arvu korral võrdub iga numbri kuubikute summa number ise. Näiteks:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 on Armstrongi arv. 

Näide 1: Kontrollige Armstrongi numbrit 3-kohalise numbri jaoks

 public class Armstrong ( public static void main(String() args) ( int number = 371, originalNumber, remainder, result = 0; originalNumber = number; while (originalNumber != 0) ( remainder = originalNumber % 10; result += Math.pow(remainder, 3); originalNumber /= 10; ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )

Väljund

 371 on Armstrongi number.
  • Esiteks, antud numbri (arvu) väärtus salvestatakse teise täisarvu muutujasse originalNumber. Seda seetõttu, et peame võrdlema lõpparvu ja algarvu väärtusi lõpus.
  • Seejärel kasutatakse mõnda aega loopi algse numbri läbimiseks, kuni see on võrdne 0-ga.
    • Igal iteratsioonil salvestatakse numbri viimane number ülejäänud.
    • Seejärel toidetakse ülejäänud funktsioon 3 abil (numbrite arv), kasutades Math.pow()funktsiooni ja lisatakse tulemuseks.
    • Seejärel eemaldatakse algarvust viimane number pärast jagamist 10-ga.
  • Lõpuks võrreldakse tulemust ja arvu. Kui see on võrdne, on see Armstrongi arv. Kui ei, siis pole.

Näide 2: Kontrollige Armstrongi numbrit n-kohalise numbri jaoks

 public class Armstrong ( public static void main(String() args) ( int number = 1634, originalNumber, remainder, result = 0, n = 0; originalNumber = number; for (;originalNumber != 0; originalNumber /= 10, ++n); originalNumber = number; for (;originalNumber != 0; originalNumber /= 10) ( remainder = originalNumber % 10; result += Math.pow(remainder, n); ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )

Väljund

 1634 on Armstrongi number.

Selles programmis oleme loopi asemel selle asemel kasutanud kahte silmuste jaoks.

Esimest silmuse jaoks kasutatakse numbris olevate numbrite arvu lugemiseks. See on lühendatud vorm:

 for (; algneNumber! = 0; algneNumber / = 10) (n ++;)

Seejärel arvutab teine ​​silmuse jaoks tulemuse, kus igal iteratsioonil töötab ülejäänud osa numbrite arv n.

Sellelt lehelt saate teada, kuidas saate kahe intervalli vahel kuvada kõiki armstrongi numbreid.

Huvitavad Artiklid...