编写一个程序,使用for循环计算和打印数字的超阶乘。一个数字的阶乘是直到该数字(包括该数字)的所有整数的乘积,因此4的阶乘(写为4!)为4 * 3 * 2 * 1 = 24。
超级阶乘是所有阶乘(包括该阶乘)的乘积。
4 !! = 4!* 3!* 2!* 1!
我使用以下代码找到了“阶乘”:
import java.util.Scanner;
public class superfactorial {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner (System.in);
// number whose factorial to be found
int number;
// prompting input
System.out.print("Enter number: ");
number = input.nextInt();
int factorial = factorial(number);
System.out.printf("the factorial of %d is %d", number , factorial);
}
// method that calculates the factorial
public static int factorial (int n){
int output = 1;
for (int i=1; i <= n; i++) {
output = output * i;
}
return output;
}
}
最佳答案
您的阶乘方法中最重要的行是以下行:
output = output * i;
将
output
乘以i
,其中i
是一个整数,该整数一直增加1。超级析因和普通析因有什么区别?要评估超因子,您可以将
output
不是乘以i
,而是乘以i
的阶乘,对吗?所以就做吧!我已经向您解释了整个过程!只需创建一个名为
superfactorial
的新方法,从阶乘方法中复制所有内容,然后更改此行即可:output = output * i;
对此:
output = output * factorial(i);
关于java - 我该如何编写超因子程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40494052/