Java-ohjelma Armstrong-numeron tarkistamiseksi

Tässä ohjelmassa opit tarkistamaan, onko annettu numero itsepäinen luku vai ei. Opit tekemään tämän käyttämällä Java for for loop ja while -silmukkaa.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:

  • Java taas ja tee … samalla kun silmukka
  • Java jos… muuten lausunto
  • Java silmukalle

Positiivista kokonaislukua kutsutaan Armstrong-luvuksi, jos n

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

Jos kyseessä on Armstrongin 3-numeroinen numero, kunkin numeron kuutioiden summa on sama kuin itse numero. Esimerkiksi:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 on Armstrongin luku. 

Esimerkki 1: Tarkista Armstrong-numerosta 3-numeroinen numero

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

Tuotos

 371 on Armstrongin numero.
  • Ensinnäkin annetun numeron (numero) arvo tallennetaan toiseen kokonaislukumuuttujaan, originalNumber. Tämä johtuu siitä, että meidän on vertailtava lopullisen ja alkuperäisen luvun arvoja lopussa.
  • Sitten jonkin aikaa silmukkaa käytetään silmukkaamaan alkuperäisen numeron läpi, kunnes se on yhtä suuri kuin 0.
    • Kullakin iteraatiolla viimeinen numeronumero tallennetaan loppuosan.
    • Sitten loput saavat virran 3: sta (numeroiden määrä) käyttämällä Math.pow()toimintoa ja lisätään tulokseen.
    • Sitten viimeinen numero poistetaan alkuperäisestä numerosta jaon jälkeen 10: llä.
  • Lopuksi tulosta ja lukua verrataan. Jos se on yhtä suuri, se on Armstrongin luku. Jos ei, se ei ole.

Esimerkki 2: Tarkista Armstrongin numero n numerosta

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

Tuotos

 1634 on Armstrongin numero.

Tässä ohjelmassa olemme käyttäneet kahta silmukoita sen sijaan, että käyttäisit silmukkaa.

Ensimmäistä silmukkaa varten lasketaan numeroiden lukumäärä. Se on tiivistetty muoto:

 for (; alkuperäinen numero! = 0; alkuperäinen numero / = 10) (n ++;)

Silmukan toinen laskee tuloksen, jossa jokaisella iteraatiolla loppuosa syötetään numeroiden lukumäärällä n.

Käy tällä sivulla oppiaksesi, kuinka voit näyttää kaikki armstrong-luvut kahden aikavälin välillä.

Mielenkiintoisia artikkeleita...