求1+2!+3!+...+20!的和。
时间: 2023-11-17 08:01:08 浏览: 89
题目描述:求1+2!+3!+...+20!的和。
解题思路:可以使用循环或递归的方式来求解。
解题方法一:
1. 思路:直接求出每个数的阶乘然后相加。
2. 程序运行代码(Java):
```
public class Demo03 {
//求1+2!+3!+...+20!的和!
public static void main(String[] args) {
long sum = 0;//sum用来接受每个阶乘的和,因为最后的和比较大,所以用long数据类型
for (int i = 1; i <= 20; i++) {//循环求每个数的阶乘
long k = 1;//数比较大,所以用long数据类型
for (int j = 1; j <= i; j++) {//求每个数的阶乘
k *= j;
}
sum += k;//每个阶乘的数都加起来
}
System.out.println(sum);//最后输出阶乘和
}
}
```
3. 程序运行结果:2561327494111820313。
解题方法二:
1. 思路:递归算出前一项的阶乘并保存,在算后一项阶乘只需要乘以后一项的那个数就行,例如:已知4!求5!则是4!*5。
2. 程序运行代码(C语言):
```
#include <stdio.h>
double Fun(double n) {
if(n == 0) return 1;
else return n*Fun(n - 1);
}
int main(void) {
double sum = 0, i;
for(i = 1;i <= 20; i++) {
sum += Fun(i);
}
printf("%lf\n",sum);
return 0;
}
```
3. 程序运行结果:2561327494111820300。
阅读全文