强数是一种特殊的数,可以定义为该数的每位数字的阶乘相加,该数等于该数本身。为了更好地理解强数的概念,请看下面的示例:
广告 该类别中的热门课程 JAVA 掌握 - 专业化 | 78 课程系列 | 15 次模拟测试145这个数字是一个很强的数字。这是因为,如果我们将这个数字的每位数字的阶乘相加,您将得到这个数字,即 145 本身,作为总和。 1! + 4! + 5! = 1 + 24 + 120 = 145。
现在让我们看一下 Java 中检查数字是否为强数字的逻辑。 下面是检查一个数字是否是强数字的描述。
在Java中实现强数的逻辑非常容易;让我们看下面的几个例子。
代码:
// Program in Java to check if a given number is a strong number or not import java.util.*; public class Main { public static void main(String[] args) { int n,i; int fact_n,lastdig; Scanner sc = new Scanner(System.in); System.out.print("\nEnter the number : " ); n = sc.nextInt(); int total = 0; int temp_n = n; while(n != 0) { i = 1; fact_n = 1; lastdig = n % 10; while(i <= lastdig) { fact_n = fact_n * i; i++; } total = total + fact_n; n = n / 10; } if(total == temp_n) System.out.println(temp_n + " is a strong number\n"); else System.out.println(temp_n + " is not a strong number\n"); System.out.println(); } }
输出:
上面的 Java 程序具有程序逻辑中讨论的所有变量。它首先找到该数字的模或最后一位数字,直到该数字不为零。完成此操作后,它会增加数字并将其存储在fact_n中以找出数字的阶乘。求和或加法不是在 while 循环中进行阶乘相加,直到不满足 i<=lastdig 的条件。添加“total”后,如果fact_n不等于“temp_n”,则给定的数字不是阶乘。另一方面,如果总数和fact_n相同,那么提到的数字就是强数字。
找到强数的另一种方法是利用强数。这里的数字可以通过命令行参数传递给程序。
代码:
public class Main { static int f[] = new int[10]; // Finding factorial for number 0 to 9 static void FirstCompute() { f[0] = f[1] = 1; for (int i = 2; i<10; ++i) f[i] = f[i-1] * i; } // If x is strong true is returned static boolean isStrong(int x) { int Sum_fact = 0; // Traverse through all digits of x. int temp_n = x; while (temp_n>0) { Sum_fact += f[temp_n%10]; temp_n /= 10; } return (Sum_fact == x); } // main function public static void main (String[] args) { // calling preCompute FirstCompute(); // first pass int x = 145; if(isStrong(x)) { System.out.println("Yes"); } else System.out.println("No"); // second pass x = 534; if(isStrong(x)) { System.out.println("Yes"); } else System.out.println("No"); } }
这是判断数字是否为强数字的另一种方法。在这里,您可以在运行时使用命令行参数获取用户的输入。这里的逻辑保持不变,区别在于输入在运行时作为参数发送。该程序的输出将是 YES 或 NO,具体取决于数字是否是强数字。
输出:
这里的程序正在检查两个数字,如果它们是强数字。这里它找出从 0 到 9 的所有数字的阶乘。然后 isStrong 函数验证该数字是否强。它将遍历给定数字的所有数字,直到 mod 存在。这里的 main 函数验证 precompute() 函数是否给出正确的结果。从用户接受两个号码,这导致检查并提供该号码是否是强号码。主函数首先调用该函数,该函数计算每个数字的阶乘。然后 isStrong() 函数检查每个数字的阶乘之和。它还计算它并以布尔值返回结果,该值是 true 或 false。总的来说,仅传递数字就会根据提到的输出提供结果。如果数字强,isStrong 函数将返回 true,如果不是,则返回 false。
强数是指每个数字的阶乘之和就是该数本身的数。普通的 java 函数,或者使用布尔值的函数,或者仅将数字作为参数传递,就可以识别强数字。该逻辑使用简单的运算,如取模、除法和加法。
以上是Java 中的强数的详细内容。更多信息请关注PHP中文网其他相关文章!