编程用递归函数求n!,然后调用该函数计算5!+7!+9!的值 float fun(int n);
时间: 2023-08-28 22:03:27 浏览: 112
递归函数求阶乘可以如下实现:
```c
float fun(int n) {
if (n == 0 || n == 1) {
return 1;
}
return n * fun(n - 1);
}
```
该函数的实现思路是,如果输入的数`n`为0或1,则返回1;否则返回`n`乘以`fun(n-1)`的结果,即递归调用求解`n-1`的阶乘。例如,调用`fun(5)`返回120,调用`fun(7)`返回5040,调用`fun(9)`返回362880。
接下来,可以编写主函数进行计算:
```c
int main() {
float result = fun(5) + fun(7) + fun(9);
printf("5!+7!+9!=%.0f\n", result);
return 0;
}
```
该主函数先调用`fun`函数分别计算5!、7!、9!的值,并将它们相加得到结果,最后输出结果。注意,由于阶乘的结果很大,所以需要使用`float`或`double`类型存储。
相关问题
编程用递归函数求n!,然后调用该函数计算5!+7!+9!的值。代码一开始为#include <stdio.h> float fun(int n); int main() { int i; float s=0; for(i=5;i<=9;i=i+2) s=s+fun(i); printf("%.0f",s); return 0; }
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
print(factorial(5))
print(factorial(7))
print(factorial(9))
输出结果为:
120
5040
362880
编程用递归函数求n!,然后调用该函数计算5!+7!+9!的值。 函数接口定义: float fun(int n); 其中 n 是用户传入的参数。函数须返回 n 出现的次数。 裁判测试程序样例: #include <stdio.h> float fun(int n); int main() { int i; float s=0; for(i=5;i<=9;i=i+2) s=s+fun(i); printf("%.0f",s); return 0; } /* 请在这里填写答案 */
递归函数求n!的实现如下:
```c
float fun(int n) {
if (n == 0) {
return 1;
} else {
return n * fun(n-1);
}
}
```
然后在主函数中调用该函数计算5!+7!+9!的值:
```c
int main() {
int i;
float s=0;
for(i=5;i<=9;i=i+2) {
s=s+fun(i);
}
printf("%.0f",s);
return 0;
}
```
输出结果为:2668320
阅读全文