Java >> Tutoriel Java >  >> Java

Programme de nombres Armstrong en Java

Dans les articles précédents, nous avons développé de nombreux programmes Java basés sur les nombres. Maintenant, dans cet article, nous allons développer le programme de nombre Armstrong en Java. Premièrement, nous développerons un programme java pour vérifier un nombre Armstrong, puis nous développerons un programme java pour un nombre Armstrong entre 1 et 1000.

Un entier positif est appelé nombre d'Armstrong d'ordre n siabc…. = un n  + b n  + c n  + d n  + ….

Par exemple :- 153
1 3 + 5 3 + 3 3 =1 + 125 + 27 =153
Donc, 153 est un nombre d'Armstrong d'ordre 3.

4150 = 4 5 + 1 5 + 5 5 + 0 5 =1 024 + 1 + 3 125 + 0 =4150
Donc, 4150 est un nombre d'Armstrong d'ordre 5

Procédure pour vérifier le numéro Armstrong de la commande N

1) Prendre une variable et prendre une commande à vérifier
2) Déclarer les variables lastDigit , power , et sum Initialiser la somme avec 0
3) Prendre une variable temporaire n pour stocker des nombres
4) Trouvez le dernier chiffre de n
5) Calculez la puissance de ce lastDigit avec la commande, c'est-à-dire pow(lastDigit, order)
6) Ajoutez le résultat dans le sum
7) Supprimez le dernier chiffre
8) Répétez les étapes 4 à 7 jusqu'à ce que le nombre devienne 0
9) Comparez la valeur somme et le nombre réel
==> Si les deux sont les pareil alors c'est le numéro Armstrong de la commande donnée
==> Sinon ce n'est pas le numéro Armstrong de la commande donnée

Méthode Java pour vérifier le numéro Armstrong de la commande 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;
}

Dans cette méthode pour trouver la puissance, on prend le support du pow() , qui est défini dans la classe Math. Le pow() est une méthode statique afin que nous puissions l'appeler sans créer d'objet de la classe Math, et elle renvoie double, nous devons donc utiliser le type pour le convertir en type int. Au lieu d'utiliser le pow() prédéfini méthode de la classe Math, vous pouvez également utiliser votre propre méthode pour trouver la puissance d'un nombre.

Voir également :- Numéro spécial, Numéro magique, Numéro Armstrong, Numéro parfait, Numéro maléfique, Numéro espion, Numéro ensoleillé en Java

Programme Java

Basé sur le isArmstrong(-,-) ci-dessus méthode, nous allons écrire un programme java pour vérifier le numéro Armstrong de la commande 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();
  }
}

La sortie pour différents cas de test :-

Entrez un nombre entier ::153
Entrez un ordre à vérifier ::3
153 est le numéro Armstrong de l'ordre 3

Entrez un nombre entier ::153
Entrez une commande à vérifier ::5
153 n'est pas le nombre Armstrong de la commande 5

Entrez un nombre entier ::4150
Entrez une commande à vérifier ::3
4150 n'est pas le numéro Armstrong de la commande 3

Entrez un nombre entier ::4150
Entrez une commande à vérifier ::5
4150 est le numéro Armstrong de la commande 5

Programme Java pour nombre Armstrong entre 1 et 1000

Nous pouvons également trouver tous les numéros d'Armstrong d'un ordre donné dans la plage donnée. À cette fin, nous devons prendre les valeurs minimales et maximales de la plage et commander pour vérifier le nombre d'Armstrong.

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();
  }
}

La sortie pour différents cas de test :-

Entrez la valeur de plage min &max ::1 1000
Entrez une commande à vérifier : :3
Les nombres d'Armstrong de 1 à 1000 de la commande 3 sont : :
1 153 370 371 407

Entrez la valeur de plage min &max ::1 10000
Entrez une commande à vérifier : :5
Les nombres d'Armstrong de 1 à 10000 de la commande 5 sont : :
1 4150 4151


Balise Java