Java >> Tutoriel Java >  >> Java

Numéro unique en Java

Dans cet article, nous développerons un programme Java pour vérifier si le numéro donné est un numéro unique ou non.

Un numéro qui n'a pas de chiffres en double est appelé un numéro unique. Par exemple :- 123, 7158, 98547 sont des nombres uniques, mais 1111, 1233, 514425 ne sont pas des nombres uniques car ils ont un chiffre plus d'une fois.

Pour cette tâche, nous devons utiliser 2 boucles (boucle intérieure et boucles extérieures). Nous avons plusieurs façons de développer une méthode Java pour vérifier si le nombre donné est un nombre unique ou non.
1) En comparant chaque chiffre manuellement
2) En utilisant Array
2) En utilisant String

Tout d'abord, nous comparerons chaque chiffre manuellement. Procédure :-
1) Prenez un nombre
2) Trouvez son dernier chiffre.
3) Comparez tous les chiffres du nombre avec ce dernier chiffre.
4) S'il en trouve plus plus d'une fois, le numéro n'est pas un numéro unique.
5) Sinon, supprimez le dernier chiffre du numéro
6) Répétez les étapes 2 à 5 jusqu'à ce que le numéro devienne zéro.

import java.util.Scanner;

public class UniqueNumber {

   // method to check the Unique number
   public static boolean isUnique(int number) {

      int n1 = number; //1st temporary variable
      int lastDigit = 0;
      int n2; //2nd temporary variable
      int count; 

      // iterate through all digits of number
      while(n1 != 0) {

         // find last digits
         lastDigit = n1 % 10;

         // compare this digit with 
         // all digits
         n2 = number;
         count = 0;

         // loop
         while(n2 != 0) {

            // find last digit
            // and compare
            if(lastDigit == n2%10)
            count++;

            // remove last digit
            n2 /= 10;
         }

         if(count != 1)
         return false;

         // remove last digit
         n1 /= 10;
      }

      return true;
   }

   // main method
   public static void main(String[] args) {

      // declare variables
      int number = 0;
      boolean result = false;

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

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

      // check number is Unique number or not
      result = isUnique(number);

      // display
      if(result)
      System.out.println(number +
                 " is a Unique number.");
      else
      System.out.println(number +
                 " is not a Unique number.");

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

La sortie pour les différents cas de test est :-

Entrez un nombre entier ::1234
1234 est un nombre unique.

Entrez un nombre entier ::456845
456845 n'est pas un nombre unique.

Vérifier le numéro unique à l'aide de Array

Maintenant, nous allons développer le même programme en utilisant un tableau. L'idée est de trouver tous les chiffres du nombre et de les stocker dans le tableau. Comparez ensuite les valeurs de tous les index les uns avec les autres s'ils sont identiques, le nombre n'est pas un nombre unique.

Mais avant de comparer tous les index, nous devons déclarer un tableau de taille "nombre_de_chiffres dans le nombre".

import java.util.Scanner;

public class UniqueNumberUsingArray {

   // Method to check the Unique number
   public static boolean isUnique(int number) {

      // count number of digits
      int digits = countDigits(number);

      // declare array
      int[] arr = new int[digits];

      // initialize array
      for(int i=0; i<digits; i++) {

         // add last digit to ith position
         arr[i] = (int)number%10;

         // remove last digit
         number /= 10;
      }

      // compare array elements
      for(int i=0; i<digits; i++) {
         for(int j=0; j<digits; j++) {
            if(i!=j && arr[i]==arr[j])
            return false;
         }
      }

      return true;
   }

   public static int countDigits(int number) {
      int count = 0;
      while(number != 0) {
         count++;
         number /= 10;
      }
      return count;
   }

   // main method
   public static void main(String[] args) {

      // declare variables
      int number = 0;
      boolean result = false;

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

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

      // check number is Unique number or not
      result = isUnique(number);

      if(result)
      System.out.println(number +
                  " is an Unique number.");
      else
      System.out.println(number +
                 " is not an Unique number.");

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

Utiliser une chaîne

Tout d'abord, convertissez le nombre donné en une chaîne, puis comparez chaque caractère de la chaîne les uns avec les autres.

import java.util.Scanner;

public class UniqueNumberUsingString {

   // Method to check the Unique number
   private static boolean isUnique(int number) {

      // convert number to string
      String str = Integer.toString(number);

      // compare characters of the String
      for(int i=0; i<str.length(); i++) {
         for(int j=0; j<str.length(); j++) {
            if( i != j   && 
                str.charAt(i)==str.charAt(j) )
               return false;
         }
      }

      return true;
   }

   // main method
   public static void main(String[] args) {

      // declare variables
      int number = 0;
      boolean result = false;

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

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

      // check number is Unique number or not
      result = isUnique(number);

      // display result
      if(result)
      System.out.println(number +
                  " is an Unique number.");
      else
      System.out.println(number +
                 " is not an Unique number.");

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

Balise Java