如何在Java中检查一个数是否为迷人数字?


迷人数字可以定义为一个数字,当它分别乘以2和3后,并将结果与原数字连接在一起,所得到的数字包含从1到9的所有数字。

要成为一个迷人数字,它必须是三位数或三位数以上。

举几个例子:

示例1

输入数字为327

让我们用迷人数字的逻辑来检查它:

327 * 2 = 654
327 * 3 = 981

连接“654” + “981” + “327” = 654981327

因此,327是一个迷人数字。

示例2

输入数字为192

让我们用迷人数字的逻辑来检查它:

192 * 2 = 384
192 * 3 = 576

连接“384” + “576” + “192” = 384576192

因此,327是一个迷人数字。

示例3

输入数字为241

让我们用迷人数字的逻辑来检查它:

241 * 2 = 482
241 * 3 = 723

连接“482” + “723” + “241” = 482723241

因此,241不是一个迷人数字。

其他一些迷人数字的例子包括192、1920、2019、327等。

算法

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

  • 步骤2 - 检查它是否是一个三位数。

  • 步骤3 - 将数字乘以2和3。

  • 步骤4 - 将两个乘积与原数字连接起来。

  • 步骤5 - 现在查找数字中是否存在从1到9的所有数字。如果存在,则它是一个迷人数字。

多种方法

我们提供了不同方法的解决方案。

  • 使用静态输入值

  • 使用用户自定义方法

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

方法1:使用静态输入值

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

示例

public class Main { public static void main(String args[]){ // Initialized an integer value int num = 327; System.out.println("Given number: "+num); // Store the product of the numbers in the variables int prod1 = num*2; int prod2 = num*3; // Concatenate the numbers String concatNum = prod1+""+prod2+num; // Boolean value to store the result boolean flag = true; // Loops from 1 to 9 for(char c = '1'; c <= '9'; c++) { // COunt holds the number of times a digit occurs int count = 0; //loop counts the frequency of each digit for(int i = 0; i < concatNum.length(); i++) { char ch = concatNum.charAt(i); //compares the character of concatNum with i if(ch == c) //increments the count by 1 if the specified condition returns true count++; } // Checks if all the digits are present in the number if(count > 1 || count == 0) { flag = false; break; } } // Prints the result if(flag) System.out.println("Fascinating number"); else System.out.println("Not a fascinating number"); } }

输出

Given number: 327
Fascinating number

方法2:使用用户自定义方法

在这种方法中,在程序中初始化一个整数值,并将此数字作为参数传递给用户自定义方法,然后在方法内部使用该算法来检查一个数字是否为迷人数字。

示例

public class Mai { static boolean fascinatingNum(int num){ // Store the product of the numbers in the variables int prod1 = num*2; int prod2 = num*3; // Concatenate the numbers String concatNum = prod1+""+prod2+num; // Boolean value to store the result boolean flag = true; // Loops from 1 to 9 for(char c = '1'; c <= '9'; c++) { // COunt holds the number of times a digit occurs int count = 0; //loop counts the frequency of each digit for(int i = 0; i < concatNum.length(); i++){ char ch = concatNum.charAt(i); //compares the character of concatNum with i if(ch == c) //increments the count by 1 if the specified condition returns true count++; } // Checks if all the digits are present in the number if(count > 1 || count == 0) { flag = false; break; } } return flag; } public static void main(String args[]){ // Initialized an integer value int num = 327; System.out.println("Given number: "+num); // Calls the user defined method and stores the result in res variable boolean res = fascinatingNum(num); // Prints the result if(res) System.out.println("Fascinating number"); else System.out.println("Not a fascinating number"); } }

输出

Given number: 327
Fascinating number

在这篇文章中,我们探讨了如何使用不同的方法在Java中检查一个数字是否为迷人数字。

更新于:2022年10月27日

4K+ 浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告