编写一个程序,使用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/

10-10 05:52