分别用迭代法和递归法编写一个求 n!的函数,来求 1!+2!+3!+…+10!的值
时间: 2024-02-06 10:02:57 浏览: 64
求数字阶乘之和(1!+2!+3!+...+10!)
以下是分别用迭代法和递归法编写一个求n!的函数,并计算1!+2!+3!+…+10!的值的代码:
```c
#include <stdio.h>
// 递归法求n!
int Facl_recursion(int n) {
if (n < 2) {
return 1;
} else {
return n * Facl_recursion(n - 1);
}
}
// 迭代法求n!
int Facl_iteration(int n) {
int i, ret = 1;
for (i = 1; i <= n; i++) {
ret *= i;
}
return ret;
}
int main() {
int i, sum = 0;
for (i = 1; i <= 10; i++) {
sum += Facl_iteration(i);
}
printf("1!+2!+3!+...+10!=%d\n", sum);
sum = 0;
for (i = 1; i <= 10; i++) {
sum += Facl_recursion(i);
}
printf("1!+2!+3!+...+10!=%d\n", sum);
return 0;
}
```
阅读全文