V tem programu se boste naučili preverjati, ali je določena številka armstrong številka ali ne. To se boste naučili z uporabo zanke for in while v Javi.
Če želite razumeti ta primer, morate poznati naslednje programske teme Java:
- Java while in do … while Loop
- Izjava Java, če … drugače
- Java za zanko
Pozitivno celo število se imenuje Armstrongova številka reda n, če
abcd… = a n + b n + c n + d n +…
V primeru Armstrongovega števila 3 števk je vsota kock vsake števke enaka samemu številu. Na primer:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 je Armstrongova številka.
Primer 1: Preverite Armstrongovo številko za 3-mestno številko
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."); ) )
Izhod
371 je Armstrongova številka.
- Najprej se vrednost dane številke (števila) shrani v drugo celoštevilčno spremenljivko, originalNumber. To je zato, ker moramo na koncu primerjati vrednosti končnega in prvotnega števila.
- Nato se zanka while uporablja za zanko skozi originalNumber, dokler ni enaka 0.
- Na vsaki ponovitvi se zadnja številka števila shrani v preostanek.
- Nato se preostanek napaja s 3 (število števk) s pomočjo
Math.pow()
funkcije in doda rezultatu. - Nato se zadnja številka odstrani iz originalNumber po delitvi z 10.
- Na koncu se primerjajo rezultat in število. Če je enako, je Armstrongova številka. Če ne, ni.
Primer 2: Preverite Armstrongovo številko za n števk
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."); ) )
Izhod
1634 je Armstrongova številka.
V tem programu smo namesto zanke uporabili dve zanki.
Prva zanka for se uporablja za štetje števila števk v številu. Je strnjena oblika:
for (; originalNumber! = 0; originalNumber / = 10) (n ++;)
Druga zanka for nato izračuna rezultat, pri čemer se na vsaki ponovitvi preostanek napaja s številom številk n.
Obiščite to stran, če želite izvedeti, kako lahko med dvema intervaloma prikažete vse armstrong številke.