Java >> Java tutorial >  >> Java

Armstrong nummerprogram i Java

I de tidligere indlæg har vi udviklet mange Java-programmer baseret på tallene. Nu i dette indlæg vil vi udvikle Armstrongs nummerprogram i Java. Først vil vi udvikle et java-program til at kontrollere et Armstrong-nummer, og derefter vil vi udvikle et java-program til et Armstrong-nummer mellem 1 og 1000.

Et positivt heltal kaldes Armstrong nummer af orden n ifabcd…. = a n  + b n  + c n  + d n  + ….

For eksempel:- 153
1 3 + 5 3 + 3 3 =1 + 125 + 27 =153
Så 153 er et Armstrong-tal af orden 3.

4150 = 4 5 + 1 5 + 5 5 + 0 5 =1.024 + 1 + 3.125 + 0 =4150
Så 4150 er et Armstrong-tal af orden 5

Procedure for at kontrollere Armstrong-nummeret på ordre N

1) Tag en variabel og tag en ordre for at kontrollere
2) Angiv variabler lastDigit , power og sum Initialiser sum med 0
3) Tag en midlertidig variabel n for at gemme numre
4) Find det sidste ciffer i n
5) Beregn styrken af ​​den lastDigit med ordre dvs. pow(lastDigit, order)
6) Tilføj resultatet til sum
7) Fjern det sidste ciffer
8) Gentag trin 4 til 7, indtil tallet bliver 0
9) Sammenlign sumværdi og det faktiske tal
==> Hvis begge er det samme er det Armstrong-nummeret for den givne ordre
==> Ellers er det ikke Armstrong-nummeret for den givne ordre

Java-metode til at kontrollere Armstrong-nummeret på ordre N

public static boolean isArmstrong(int number, int order){

   // declare variables
   int lastDigit = 0;
   int power = 0;
   int sum = 0;

   // temporary variable to store number
   int n = number;

   while(n!=0) {

      // find last digit
      lastDigit = n % 10;

      // find power of digit
      power = (int) Math.pow(lastDigit, order);

      // add power value into sum
      sum += power;

      // remove last digit
      n /= 10;
   }

   if(sum == number) return true;
   else return false;
}

I denne metode til at finde kraften tager vi støtte fra pow() , som er defineret i matematikklassen. pow() er en statisk metode, så vi kan kalde den uden at oprette et objekt af Math-klassen, og den returnerer dobbelt, så vi skal bruge type til at caste det til int-type. I stedet for at bruge den foruddefinerede pow() metode i matematikklassen, kan du også bruge din egen metode til at finde styrken af ​​et tal.

Se også:- Specialnummer, Magisk nummer, Armstrong-nummer, Perfekt nummer, Evil Number, Spionnummer, Sunny-nummer i Java

Java-program

Baseret på ovenstående isArmstrong(-,-) metode vil vi skrive et java-program for at kontrollere Armstrong-nummeret for ordre N.

import java.util.Scanner;

public class ArmstrongNumber {
   public static boolean isArmstrong(int number, int order){

      // declare variables
      int lastDigit = 0;
      int power = 0;
      int sum = 0;

      // temporary variable to store number
      int n = number;

      while(n!=0) {
         // find last digit
         lastDigit = n % 10;

         // find power of digit
         power = (int) Math.pow(lastDigit, order);

         // add power value into sum
         sum += power;

         // remove last digit
         n /= 10;
      }

      if(sum == number) return true;
      else return false;
   }

   public static void main(String[] args) {

       // declare variables
       int number = 0;
       int order = 0;

       // create Scanner class object 
       Scanner scan = new Scanner(System.in);

       // take input
       System.out.print("Enter integer number::");
       number = scan.nextInt();
       System.out.print("Enter order to check::");
       order = scan.nextInt();

       //check number is Armstrong number or not
       if(isArmstrong(number, order)) 
          System.out.println( number +" is "
            +"Armstrong number of order "+ order);
       else
          System.out.println( number +" is not "
            +"Armstrong number of order "+ order);

       // close Scanner class object
       scan.close();
  }
}

Output for forskellige test-cases:-

Indtast et heltal::153
Indtast en ordre for at kontrollere::3
153 er Armstrong-nummeret for ordre 3

Indtast et heltal::153
Indtast en ordre for at kontrollere::5
153 er ikke Armstrong-nummeret for ordre 5

Indtast et heltal::4150
Indtast en ordre for at kontrollere::3
4150 er ikke Armstrong-nummeret for ordre 3

Indtast et heltal::4150
Indtast en ordre for at kontrollere::5
4150 er Armstrong-nummeret for ordre 5

Java-program for Armstrong nummer mellem 1 og 1000

Vi kan også finde alle Armstrong-numre i en given rækkefølge i det givne interval. Til dette formål skal vi tage minimums- og maksimumværdierne for rækkevidden og rækkefølgen for at kontrollere Armstrong-tallet.

import java.util.Scanner;

public class ArmstrongNumberInRange {
   public static boolean isArmstrong(int number, int order){

      // declare variables
      int lastDigit = 0;
      int power = 0;
      int sum = 0;

      // temporary variable to store number
      int n = number;

      while(n!=0) {
         // find last digit
         lastDigit = n % 10;

         // find power of digit
         power = (int) Math.pow(lastDigit, order);

         // add power value into sum
         sum += power;

         // remove last digit
         n /= 10;
      }

      if(sum == number) return true;
      else return false;
  }

  public static void main(String[] args) {

      // declare variables
      int minRange , maxRange;
      int order = 0;

      // create Scanner class object
      Scanner scan = new Scanner(System.in);

      // read inputs
      System.out.print("Enter min & max "+
                       "Range value:: ");
      minRange = scan.nextInt();
      maxRange = scan.nextInt();

      System.out.print("Enter order to check::");
      order = scan.nextInt();

      // check in range
      System.out.println("Armstrong numbers"+
           " from "+minRange+" to "+maxRange+
           " of order " +order+" is:: ");

      for(int i = minRange; i<= maxRange; i++)
         if(isArmstrong(i, order)) 
            System.out.print( i + " ");

      // close Scanner class object
      scan.close();
  }
}

Output for forskellige test-cases:-

Indtast min og maks. områdeværdi::1 1000
Indtast en ordre for at kontrollere::3
Armstrong-tal fra 1 til 1000 af ordre 3 er::
1 153 370 371 407

Indtast min og maks. områdeværdi::1 10000
Indtast en ordre for at kontrollere::5
Armstrong-tal fra 1 til 10000 af ordre 5 er::
1 4150 4151


Java tag