用递归算法将阶乘值作为元素储存在数组中(n<=20),然后计算多项式的和:sum=1+1/1!+1/2!+1/3!+1/4!+...+1/n!
时间: 2023-11-18 22:04:41 浏览: 129
Taylor-Series:Java中sin(x)的泰勒级数
好的,首先我们可以先写一个递归函数来计算阶乘,然后将计算出来的阶乘值存储在数组中。代码如下:
```c
#include <stdio.h>
void factorial(int n, int arr[]) {
if (n == 0) {
arr[0] = 1;
return;
}
factorial(n - 1, arr);
arr[n] = arr[n - 1] * n;
}
int main() {
int n;
printf("请输入n的值:");
scanf("%d", &n);
int arr[21];
factorial(n, arr);
double sum = 1.0;
for (int i = 1; i <= n; i++) {
sum += 1.0 / arr[i];
}
printf("多项式的和为:%lf\n", sum);
return 0;
}
```
在这个程序中,我们定义了一个`factorial`函数来计算阶乘,并将计算出来的阶乘值存储在数组`arr`中。然后我们在`main`函数中调用`factorial`函数来计算阶乘,并计算多项式的和。
阅读全文