酷代码 AI
菜单
服务商

编程用递归函数求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; } /* 请在这里填写答案 */

```c #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; } float fun(int n) { if (n == 0 || n == 1) { return 1; } return n * fun(n - 1); } ``` 代码解释 1. 递归函数`fun`: - 递归的终止条件是当`n`为 0 或者 1 时,此时`n!`的值为 1,所以直接返回 1。 - 对于其他的`n`值,根据阶乘的定义`n! = n * (n - 1)!`,所以函数返回`n * fun(n - 1)`,也就是当前的`n`乘以`(n - 1)`的阶乘。 2. 主函数`main`: - 定义了一个循环,循环变量`i`从 5 开始,每次增加 2,直到`i`等于 9。 - 在每次循环中,调用`fun(i)`计算`i`的阶乘,并累加到变量`s`中。 - 最后使用`printf("%.0f", s);`输出`s`的值,`%.0f`表示以浮点数形式输出,并且不保留小数部分。 [2025-12-10 23:14:04 | AI问答 | 356点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多