编写递归函数求n!,然后调用该函数求1!+2!+3!+ +9!。 #include "stdio.h" float f(int n) { float y; if (n==1||n==0) y=1 ; else (1) ; (2) ; } int main() { float s; int i; (3) ; for(i=1; i<=9; i++) (4) ; printf("%.0f\n",s); }
时间: 2023-11-27 15:54:33 浏览: 38
以下是完整代码:
```c
#include "stdio.h"
float f(int n)
{
float y;
if (n==1||n==0) y=1;
else y=n*f(n-1);
return y;
}
int main()
{
float s=0;
int i;
for(i=1; i<=9; i++)
{
s += f(i);
}
printf("%.0f\n",s);
return 0;
}
```
解释如下:
1. 当n等于1或0时,直接返回1。
2. 否则,递归调用f函数,计算n的阶乘。
3. 定义一个变量s存储最终的结果,初始化为0。
4. 循环计算1!到9!,将结果累加到s中。
5. 输出s的值,注意要使用%.0f格式化为整数形式。
6. 返回0表示程序正常结束。
相关问题
写递归函数求n!,然后调用该函数求1!+2!+3!+ +9!。 #include "stdio.h" float f(int n) { float y; if (n==1||n==0) y=1 ; else (1) ; (2) ; } int main() { float s; int i; (3) ; for(i=1; i<=9; i++) (4) ; printf("%.0f\n",s); }
好的,我知道了。以下是递归函数求n!的代码和调用该函数求1!+2!+3!+...+9!的代码:
```
#include <stdio.h>
float f(int n) {
float y;
if (n == 1 || n == 0) {
y = 1;
} else {
y = n * f(n - 1);
}
return y;
}
int main() {
float s = 0;
int i;
for (i = 1; i <= 9; i++) {
s += f(i);
}
printf("%.0f\n", s);
return 0;
}
```
在该代码中,函数f(n)使用递归的方式来计算n!,如果n等于1或0,则返回1,否则返回n乘以f(n-1)。在main函数中,使用循环来计算1!+2!+3!+...+9!,并将结果存储在变量s中,最后打印出s的值。
c语言,编写递归函数求n!在主函数中调用该函数,求5!+8!的值
好的,这里是 C 语言的递归函数求 n! 的代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int result = factorial(5) + factorial(8);
printf("%d\n", result);
return 0;
}
```
这个程序中的 `factorial` 函数是递归实现的,它接收一个整数参数 `n`,并返回 `n` 的阶乘。在 `factorial` 函数中,如果 `n` 的值为 1,那么就返回 1,否则就返回 `n` 乘上 `factorial(n - 1)` 的结果,这里用到了函数的递归调用。
在主函数中,我们分别调用 `factorial(5)` 和 `factorial(8)`,并将它们的返回值相加,最后将结果打印出来。运行这个程序,输出结果为 40321。
阅读全文