Java >> Tutoriel Java >  >> Java

Programme de nombres Palindrome en Java

Auparavant, nous avons développé de nombreux programmes Java basés sur les nombres d'Armstrong. Dans cet article, nous allons développer un programme de nombres palindromes en Java. Il vérifiera que le numéro donné est un numéro de palindrome ou non, et plus tard nous développerons un autre programme Java qui trouvera tous les numéros de palindrome entre deux nombres.

Numéro de palindrome :- Si l'inverse d'un nombre est égal au même nombre alors le nombre est appelé nombre palindrome.

Exemple de numéro de palindrome :-
5225 =5225 Donc, 5225 est un nombre palindrome.
123 =321 Donc, 123 n'est pas un nombre palindrome.

Ce programme dépend entièrement du programme pour trouver l'inverse d'un nombre. Après avoir trouvé l'inverse d'un nombre, comparez le résultat et le nombre réel. Si les deux sont identiques, le nombre donné est un nombre palindrome, sinon le nombre n'est pas un nombre palindrome.

Prérequis :- Programme Java pour trouver l'inverse d'un nombre

Le processus pour vérifier le nombre est un nombre palindrome ou non,
1) Prenez un nombre
2) Trouvez l'inverse du nombre
3) Si l'inverse et le nombre réel sont les mêmes, alors il un nombre palindrome
4) Sinon ce n'est pas un nombre palindrome

Programme de nombres Palindrome en Java

import java.util.Scanner;

public class PalindromeNumber {

   // returns reverse of a number
   public static int findReverse(int num) {

      // declare a temporary variable and
      // initialize it with 0
      int reverse = 0;

      // loop to repeat the process
      while(num != 0) {

         // find last digit of number
         // multiply temporary variable by 10
         // add last digit to temporary variable
         reverse = (reverse*10 ) + (num%10);

         // remove last digit
         num = num / 10;
      }
      return reverse;
   }

   // returns true if number is Palindrome  
   public static boolean isPalindrome(int n) {
      return (findReverse(n) == n) ? true : false;
   }

   public static void main(String[] args) {

      // declare variable
      int number = 0;

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

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

      // check number is palindrome or not
      if(isPalindrome(number))
         System.out.println(number+
                " is a palindrome number");
      else
         System.out.println(number+
                " is not a palindrome number");

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

La sortie pour différents cas de test :-

Entrez un nombre entier :12345
12345 n'est pas un nombre palindrome

Entrez un nombre entier :1234321
1234321 est un nombre palindrome

Dans ce programme, le isPalindrome(-) la méthode peut également être écrite en utilisant if-else,

public static boolean isPalindrome(int n) {
     if(findReverse(n) == n)
         return true;
     else 
         return false;
 }

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 pour trouver tous les numéros de palindrome dans une plage donnée

On peut aussi trouver tous les nombres palindromes entre les deux nombres donnés. Pour cela, nous devons utiliser la boucle.

import java.util.Scanner;

public class PalindromeNumberInRange {

  // returns reverse of a number
  public static int findReverse(int num) {

     // declare a temporary variable and
     // initialize it with 0
     int reverse = 0;

     // loop to repeat the process
     while(num != 0) {

        // find last digit of number
        // multiply temporary variable by 10
        // add last digit to temporary variable
        reverse = (reverse*10 ) + (num%10);

        // remove last digit
        num = num / 10;
     }
     return reverse;
  }

  // returns true if number is Palindrome  
  public static boolean isPalindrome(int n) {
     return (findReverse(n)==n) ? true : false;
  }

  public static void main(String[] args) {

     // declare variables
     int minRange , maxRange;

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

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

     // find in the given range
     System.out.println("Palindrome numbers "+
        "from "+minRange+" to "+maxRange+":: ");

     for(int i = minRange; i<= maxRange; i++) {
        if(isPalindrome(i)) 
           System.out.print( i + " ");
     }

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

La sortie pour différents cas de test :-

Entrez la valeur de la plage min : 1
Entrez la valeur de la plage max : 100
Numéros de palindrome de 1 à 100 : :
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99

Entrez la valeur de la plage min : 100
Entrez la valeur de la plage max : 200
Numéros de palindrome de 100 à 200 : :
101 111 121 131 141 151 161 171 181 191

Entrez la valeur de la plage min : 1000
Entrez la valeur de la plage max : 2000
Nombres de palindromes de 1000 à 2000 : :
1001 1111 1221 1331 1441 1551 1661 1771 1881 1991

Une autre façon de vérifier le nombre de palindrome

L'idée est de comparer le premier chiffre avec le dernier chiffre. De même, le deuxième chiffre du nombre avec le (dernier 1) chiffre du nombre, et ainsi de suite… Si tout retourne vrai alors le nombre donné est un nombre palindrome sinon ce n'est pas un nombre palindrome.

Dans cette méthode, nous devons d'abord trouver le nombre total de chiffres dans le nombre donné. Nous n'avons besoin de comparer que jusqu'à number_of_digits/2

Si le nombre de chiffres dans le nombre donné est impair, il n'est pas nécessaire de comparer le nombre du milieu.

import java.util.Scanner;

public class PalindromeNumberAnotherWay {

  // returns true if number is Palindrome  
  public static int findNumberOfDigits(int n) {

     int digits = 0;
     while(n != 0) {
        digits++;
        n /= 10;
     }

     return digits;
  }

  public static boolean isPalindrome(int num) {

     // declare the variables
     int leading_digit = 0;  // first digit
     int trailing_digit = 0; // last digit
     int n = num; // variable to store number

     // count number of digits in the number
     int digit_count = findNumberOfDigits(num);

     // Find appropriate divisor to extract 
     // the leading digit
     int divisor =(int)Math.pow(10,digit_count-1);

     // loop
     for(int i=1; i<=digit_count/2; i++) {

        leading_digit=n/divisor; //first digit
        trailing_digit = n%10; // last digit

        // compare first and last digit 
        if(leading_digit != trailing_digit)
            return false;

        n = n % divisor; // remove first digit
        n = n / 10; // remove last digit

        // last digit &amp; first digit are removed 
        // so also divide the divisor by 10*10
        divisor /= 100; 
     }
     return true;
  }

  public static void main(String[] args) {

     // declare variable
     int number = 0;

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

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

     // check number is palindrome or not
     if(isPalindrome(number))
        System.out.println(number+
               " is a palindrome number");
     else
        System.out.println(number+
              " is not a palindrome number");

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

   }
}

Nous pouvons également utiliser String pour vérifier que le nombre donné est un nombre palindrome ou non, voir :- Chaîne palindrome en Java


Balise Java