如何在Java中检查一个数是否为唯一数?


唯一数可以定义为一个数字,其中没有重复的数字。简单来说,这意味着该数字的所有数字都是唯一的,没有重复的数字。

在本文中,我们将学习如何使用Java编程语言来检查一个数是否为唯一数。

举几个例子:

示例1

输入数字为145

让我们使用唯一数的逻辑来检查它:

The digits are 1, 4, 5, all are unique digits.

因此,145是一个唯一数。

示例2

输入数字为37

让我们使用唯一数的逻辑来检查它:

The digits are 3, 7, all are unique digits.

因此,37是一个唯一数。

示例3

输入数字为377

让我们使用唯一数的逻辑来检查它:

The digits are 3, 7, 7 all are not unique digits.

因此,377不是一个唯一数。

其他一些唯一数的例子包括132、1、45、98、701、5、12、1234等等。

算法

算法1

  • 步骤1 - 获取一个整数,可以通过初始化或用户输入获得。

  • 步骤2 - 使用一个外层while循环获取最右边的数字。

  • 步骤3 - 使用另一个内层while循环将步骤1中的最右边数字与最左边数字进行比较。如果在任何时候数字匹配,则给定的数字具有重复的数字。因此,打印给定的数字不是唯一的,并重复步骤2和步骤3,直到步骤2涵盖数字的每个数字。

  • 步骤4 - 最后,如果没有找到匹配项,则打印给定的数字是唯一的。

算法2

  • 步骤1 - 获取一个整数,可以通过初始化或用户输入获得。

  • 步骤2 - 使用一个外层for循环迭代每个数字。

  • 步骤3 - 使用一个内层for循环将外层for循环的最左边数字与内层循环的所有最右边数字进行比较。如果在任何时候数字匹配,则给定的数字具有重复的数字。因此,打印给定的数字不是唯一的,并重复步骤2和步骤3,直到步骤2涵盖数字的每个数字。

  • 步骤4 - 最后,如果没有找到匹配项,则打印给定的数字是唯一的。

多种方法

我们提供了不同的方法来解决这个问题。

  • 通过手动比较每个数字

  • 通过使用用户字符串

让我们逐一查看Java程序及其输出。

方法1:通过手动比较每个数字

在这种方法中,将在程序中初始化一个整数值,然后使用算法1来检查一个数是否为唯一数。

示例

public class Main{ //main method public static void main(String[] args){ //Declared an integer variable and initialized a number as value int originalNumber = 123; //printing the given number to be checked System.out.println("Given number: "+originalNumber); //keep a copy of original number int copyOfOriginalNumber = originalNumber; //initializing count as 1 int count =0; //compare each digit with others //we will start comparing from rightmost digit with leftmost digits while (originalNumber > 0){ //get the rightmost digit int digit = originalNumber % 10; //remove the rightmost digit and get the updated number originalNumber = originalNumber / 10; //assign the updated original number(rightmost digit removed) to a temp variable int temp = originalNumber; //check if the rightmost digit matches with leftmost digits while (temp > 0){ //if rightmost digit matches with any leftmost digit then //increment count value //and break if (temp % 10 == digit){ count = 1; break; } //remove rightmost digit from temp //and get updated temp value temp = temp / 10; } } //if count value is 1 then print given number is unique number if (count == 0){ System.out.println(copyOfOriginalNumber+" is a unique number"); } //else print given number is not a unique number else { System.out.println(copyOfOriginalNumber+" is not a unique number"); } } }

输出

Given number: 123
123 is a unique number

方法2:使用字符串

在这种方法中,将在程序中初始化一个整数值,然后使用算法2来检查一个数是否为Peterson数。(此处原文错误,应为唯一数)

示例

public class Main{ //main method public static void main(String[] args){ //Declared an integer variable and initialized a number as value int originalNumber = 7890; //printing the given number to be checked System.out.println("Given number: "+originalNumber); //initialize count as 0 int count = 0; //convert integer to String by using toString() method String st = Integer.toString(originalNumber); //Find length of String by using length() method int length=st.length(); //check if the leftmost digit matches with rightmost digits for(int i=0;i<length-1;i++){ for(int j=i+1;j<length;j++){ //if matches then increment count and break if(st.charAt(i)==st.charAt(j)){ count++; break; } } } //if count value is 1 then print given number is unique number if (count == 0){ System.out.println(originalNumber+" is a unique number"); } //else print given number is not a unique number else { System.out.println(originalNumber+" is not a unique number"); } } }

输出

Given number: 7890
7890 is a unique number

在本文中,我们探讨了如何使用不同的方法在Java中检查一个数是否为唯一数。

更新于:2022年10月28日

9K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告