使用递归算法完成1!+2!+3!+4!+5! 并打印出执行时间。提示:使用long starttime=System.currentTimeMillis();
时间: 2023-07-15 20:14:17 浏览: 94
好的,这里是使用递归算法完成1!+2!+3!+4!+5!的代码,并打印出执行时间:
```java
public class FactorialSum {
public static void main(String[] args) {
long starttime = System.currentTimeMillis();
int n = 5;
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += factorial(i);
}
System.out.println("1!+2!+3!+4!+5! = " + sum);
long endtime = System.currentTimeMillis();
System.out.println("执行时间:" + (endtime - starttime) + "ms");
}
public static int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
}
```
输出结果为:
```
1!+2!+3!+4!+5! = 153
执行时间:0ms
```
因为计算阶乘的数值范围较小,在计算时不会出现栈溢出的情况,所以递归算法是可行的。但在实际应用中,若要计算更大的阶乘求和,建议使用非递归的方法,或使用递归算法时设置递归深度限制,以避免栈溢出。
阅读全文