Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java阶乘格式_Java_Format_Factorial - Fatal编程技术网

Java阶乘格式

Java阶乘格式,java,format,factorial,Java,Format,Factorial,我的阶乘方法工作正常,尽管我想更改输出,而不只是输出数字和阶乘结果。例如,我想如果用户输入6,输出为6*5*4*3*2*1=720,而不是6的阶乘为:720 int count, number;//declared count as loop and number as user input int fact = 1;//declared as 1 Scanner reader = new Scanner(System.in); // Reading from System.i

我的阶乘方法工作正常,尽管我想更改输出,而不只是输出数字和阶乘结果。例如,我想如果用户输入6,输出为6*5*4*3*2*1=720,而不是6的阶乘为:720

int count, number;//declared count as loop and number as user input
    int fact = 1;//declared as 1
    Scanner reader = new Scanner(System.in);  // Reading from System.in
    System.out.println("Please enter a number above 0:");
    number = reader.nextInt(); // Scans the next token of the input as an int
    System.out.println(number);//prints number the user input
    if (number > 0) {
        for (i = 1; i <= number; i++) {//loop 
            fact = fact * i;
        }
        System.out.println("Factorial of " + number + " is: " + fact);
    }
    else 
    {
        System.out.println("Enter a number greater than 0");
    }
}

创建一个字符串并存储数字

试试这样的

    int count, number;//declared count as loop and number as user input
    String s; //create a string
    Scanner reader = new Scanner(System.in);  // Reading from System.in
    System.out.println("Please enter a number above 0:");
    number = reader.nextInt(); // Scans the next token of the input as an int
    int fact = number;//store the number retrieved
    System.out.println(number);//prints number the user input
    if (number > 0) {
        s=String.valueOf(number);
        for (int i = 1; i < number; i++) {//loop 
            fact = fact * i;
            s = s +" * "+String.valueOf(number-i);
        }
        System.out.println(s+ " = " + fact);
    }
    else 
    {
        System.out.println("Enter a number greater than 0");
    }

检查这个递归方法:自己检查负数:D

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int num = scanner.nextInt();
    System.out.println(getFactorialString(num, " = " + getFactorial(num)));
}

public static String getFactorialString(int num, String result) {
    if (num == 0) return "0 => 1";
    if (num == 1) {
        result = "" + num + "" + result;
    } else {
        result = getFactorialString(num - 1, result);
        result = "" + num + " x " + result;
    }
    return result;
}

public static int getFactorial(int num) {
    if (num == 0) return 1;
    return num * getFactorial(num - 1);
}

在for循环中以某种方式使用System.out.print,因此写一个循环,将数字从6向下打印到1,用空格星空分隔。你知道如何写循环。你知道怎么打印。现在把你的知识放在一起。