package Test;
public class TestRecursion {
public static void main(String[] args) {
long d1 = System.currentTimeMillis();
System.out.printf("%d阶乘的结果:%s%n", 10, factorial(10));
long d2 = System.currentTimeMillis();
System.out.printf("递归费时:%s%n", d2-d1);
factorialloop(10);
}
static long factorial(int n){
if(n == 1){
return 1;
}else{
return n * factorial(n-1);//n! = n*(n-1)!
}
}
static long factorialloop(int a){
long d3 = System.currentTimeMillis();
long result = 1;
while(a > 1){
result*=a*(a-1);
a-=2;
}
long d4 = System.currentTimeMillis();
System.out.println(result);
System.out.printf("普通循环费时: %s%n", d4-d3);
return result;
}
}
比较发现迭代的花费时间少