V tomto programe sa naučíte skontrolovať, či dané číslo je armstrongovo číslo alebo nie. Naučíte sa to robiť pomocou cyklov for a while v Jave.
Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:
- Java zatiaľ čo a robiť … zatiaľ čo Loop
- Vyhlásenie Java, ak … else
- Java pre slučku
Kladné celé číslo sa nazýva Armstrongovo číslo rádu n, ak
abcd … = a n + b n + c n + d n + …
V prípade Armstrongovho počtu 3 číslic sa súčet kociek každej číslice rovná samotnému číslu. Napríklad:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 je Armstrongovo číslo.
Príklad 1: Skontrolujte trojmiestne číslo Armstrong Number
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ýkon
371 je Armstrongovo číslo.
- Najskôr sa hodnota daného čísla (čísla) uloží do inej celočíselnej premennej, originalNumber. Je to preto, že musíme na konci porovnať hodnoty konečného čísla a pôvodného čísla.
- Potom sa cyklická slučka použije na cyklovanie cez originalNumber, kým sa nerovná 0.
- Pri každej iterácii je posledná číslica čísla uložená do zvyšku.
- Potom je zvyšok napájaný pomocou 3 (počet číslic) pomocou
Math.pow()
funkcie a pridaný k výsledku. - Potom sa posledná číslica odstráni z pôvodného čísla po rozdelení na 10.
- Nakoniec sa porovnajú výsledky a počet. Ak je rovnaké, je to Armstrongovo číslo. Ak nie, nie je.
Príklad 2: Skontrolujte číslo Armstronga, či neobsahuje n číslic
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ýkon
1634 je Armstrongovo číslo.
V tomto programe sme namiesto použitia cyklu while použili dva cykly loop.
Prvá slučka for sa používa na spočítanie počtu číslic v počte. Je to zhustená forma:
pre (; originalNumber! = 0; originalNumber / = 10) (n ++;)
Druhá slučka for potom počíta výsledok, kde pri každej iterácii je zvyšok napájaný počtom číslic n.
Na tejto stránke nájdete informácie o tom, ako môžete zobraziť všetky ozbrojené čísla v dvoch intervaloch.