Java program za provjeru Armstrongova broja

U ovom ćete programu naučiti provjeriti je li zadani broj armstrong broj ili nije. To ćete naučiti pomoću petlje for i while u Javi.

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:

  • Java while and do … while Loop
  • Java if … else Izjava
  • Java za petlju

Pozitivni cijeli broj naziva se Armstrongov broj reda n ako

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

U slučaju Armstrongova broja od 3 znamenke, zbroj kocki svake znamenke jednak je samom broju. Na primjer:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 je Armstrongov broj. 

Primjer 1: Provjerite Armstrongov broj za troznamenkasti broj

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

Izlaz

 371 je Armstrongov broj.
  • Prvo, zadana vrijednost broja (broja) pohranjuje se u drugu cjelobrojnu varijablu, originalNumber. To je zato što na kraju moramo usporediti vrijednosti konačnog broja i izvornog broja.
  • Zatim se za petlju kroz originalNumber koristi petlja while dok ne bude jednaka 0.
    • Na svakoj se iteraciji zadnja znamenka broja pohranjuje u ostatak.
    • Zatim se ostatak napaja s 3 (broj znamenki) pomoću Math.pow()funkcije i dodaje rezultatu.
    • Zatim se posljednja znamenka uklanja iz originalnog broja nakon dijeljenja s 10.
  • Na kraju se uspoređuju rezultat i broj. Ako je jednak, to je Armstrongov broj. Ako nije, nije.

Primjer 2: Provjerite Armstrongov broj za n znamenki

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

Izlaz

 1634 je Armstrongov broj.

U ovom smo programu umjesto petlje while koristili dvije for petlje.

Prva for petlja koristi se za brojanje broja znamenki u broju. To je sažeti oblik:

 za (; originalNumber! = 0; originalNumber / = 10) (n ++;)

Druga for petlja zatim izračunava rezultat gdje se na svakoj iteraciji ostatak napaja brojem znamenki n.

Posjetite ovu stranicu da biste saznali kako možete prikazati sve armstrong brojeve između dva intervala.

Zanimljivi članci...