Program Java ke kontrole Armstrongova čísla

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.

Zajímavé články...