求一个案例:分别用递归方法和非递归方法求n*(n-1)*(n-2)...3*2*1;
非递归方式:用循环求解
package Hello;
public class Test {
static int NotDiGui(int n){
int result=1;
for(int i=1;i<=n;i++){
result=result*i;
}
return result;
}
public static void main(String[] args) {
System.out.println(Test.NotDiGui(6));
}
}
输出结果是:720,即6!;
递归方式:
package Hello;
public class Test {
static int DiGui(int n){
if(n==1){
return 1;
}
return DiGui(n-1)*n;
}
public static void main(String[] args) {
System.out.println(Test.DiGui(6));
}
}
输出结果也是:720,即6!;