Program Java na kontrolu Armstrongovho čísla

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.

Zaujímavé články...