Java-program för att kontrollera Armstrong-nummer

I det här programmet lär du dig att kontrollera om ett visst nummer är armstrong nummer eller inte. Du lär dig att göra detta genom att använda en for-loop och en while-loop i Java.

För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:

  • Java medan och gör … medan Loop
  • Java if … else Uttalande
  • Java för Loop

Ett positivt heltal kallas ett Armstrong antal ordningar n if

abcd … = a n + b n + c n + d n + …

I fallet med ett Armstrong-antal på tre siffror är summan av kuberna för varje siffror lika med själva antalet. Till exempel:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 är ett Armstrong-tal. 

Exempel 1: Kontrollera att Armstrong Number har tre siffror

 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."); ) )

Produktion

 371 är ett Armstrong-nummer.
  • Först lagras ett visst tal (nummer) i ett annat heltal variabel, originalNumber. Detta beror på att vi måste jämföra värdena på slutnummer och originalnummer i slutet.
  • Sedan används en while-slinga för att slinga igenom originalNumber tills den är lika med 0.
    • På varje iteration lagras den sista siffran i num i resten.
    • Därefter drivs resten av 3 (antal siffror) med hjälp av Math.pow()funktionen och läggs till resultatet.
    • Därefter tas den sista siffran bort från originalnumret efter delning med 10.
  • Slutligen jämförs resultat och antal. Om det är lika är det ett Armstrong-tal. Om inte, så är det inte.

Exempel 2: Kontrollera Armstrong-numret för n siffror

 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."); ) )

Produktion

 1634 är ett Armstrong-nummer.

I det här programmet har vi använt två för loopar istället för att använda while loop.

Den första för slingan används för att räkna antalet siffror i numret. Det är den kondenserade formen av:

 för (; originalNumber! = 0; originalNumber / = 10) (n ++;)

Den andra för loop beräknar sedan resultatet var på varje iteration, resten drivs av antalet siffror n.

Besök den här sidan för att lära dig hur du kan visa alla armstrong nummer mellan två intervaller.

Intressanta artiklar...