【发布时间】:2016-08-31 13:02:29
【问题描述】:
我正在尝试使用递归计算方法 factorialRecursive 中输入的阶乘,但是我无法在该方法中声明任何变量或对象,这就是我正在努力解决的问题,我的尝试已经在该方法中但不起作用.这必须在 While 循环而不是 for 循环中调用自身。
class Factorial{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int number;
do {
System.out.print("Enter a positive number: ");
number = input.nextInt();
} while (number < 0);
System.out.println(number + "! = " + factorialIterative(number) + " (iterative)");
System.out.println(number + "! = " + factorialRecursive(number) + " (recursive)");
}
private static int factorialIterative(int num) {
int result = 1;
while (num > 0) {
result = num*result;
num--;
}
return result;
}
private static int factorialRecursive(int num){
if (num==1 | num==0)
return 1;
return num*(num-1) * num;
}
}
【问题讨论】:
-
Java 中的阶乘递归已在此站点上处理过多次。搜索这三个关键字会带来足够的点击率,其中一个是我的关闭投票。