V tomto programu se naučíte zkontrolovat, zda je dané číslo armstrongovým číslem či nikoli. Naučíte se to udělat pomocí smyčky for a while v Javě.
Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:
- Zatímco Java a dělat … zatímco Loop
- Prohlášení Java, pokud … else
- Java pro smyčku
Kladné celé číslo se nazývá Armstrongovo číslo řádu n if
abcd… = a n + b n + c n + d n +…
V případě Armstrongova počtu 3 číslic se součet kostek každé číslice rovná číslu samotnému. Například:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 je číslo Armstrong.
Příklad 1: Zkontrolujte 3místné čí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ýstup
371 je Armstrongovo číslo.
- Nejprve se hodnota daného čísla (čísla) uloží do jiné celočíselné proměnné, originalNumber. Je to proto, že musíme na konci porovnat hodnoty konečného a původního čísla.
- Potom se smyčka while používá k procházení přes originalNumber, dokud se nebude rovnat 0.
- Při každé iteraci je poslední číslice čísla uložena ve zbytku.
- Poté je zbytek napájen pomocí 3 (počet číslic) pomocí
Math.pow()
funkce a přidán k výsledku. - Poté je poslední číslice odstraněna z originalNumber po dělení 10.
- Nakonec jsou porovnány výsledky a počet. Pokud se rovná, jedná se o Armstrongovo číslo. Pokud ne, není.
Příklad 2: Zkontrolujte číslo Armstronga, zda 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ýstup
1634 je Armstrongovo číslo.
V tomto programu jsme místo smyčky while použili smyčky dva.
První smyčka for se používá k výpočtu počtu číslic v čísle. Je to zhuštěná forma:
for (; originalNumber! = 0; originalNumber / = 10) (n ++;)
Druhá smyčka for poté vypočítá výsledek, kde na každé iteraci je zbytek poháněn počtem číslic n.
Na této stránce se dozvíte, jak můžete zobrazit všechna Armstrongova čísla mezi dvěma intervaly.