Java阶乘格式
我的阶乘方法工作正常,尽管我想更改输出,而不只是输出数字和阶乘结果。例如,我想如果用户输入6,输出为6*5*4*3*2*1=720,而不是6的阶乘为:720Java阶乘格式,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
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,用空格星空分隔。你知道如何写循环。你知道怎么打印。现在把你的知识放在一起。