如何在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中检查一个数字是否为迷人数字。
广告