用C语言解决下列问题:用递归编写一个函数fac(),它的功能是求n!。在主函数中调用fac(),求5!
时间: 2024-03-18 20:40:33 浏览: 167
好的,下面是使用递归编写的fac()函数的C语言代码:
```c
#include <stdio.h>
int fac(int n)
{
if (n == 0)
return 1;
else
return n * fac(n - 1);
}
int main()
{
// 求5!
printf("5! = %d\n", fac(5));
return 0;
}
```
运行结果如下:
```
5! = 120
```
相关问题
c语言用递归编写一个函数fac(),它的功能是求n!。在主函数中调用fac(),分别求5!,3!+5!+7!+9!,3!+7!+15!+10!。
好的,下面是使用递归编写的fac()函数的C语言代码:
```c
#include <stdio.h>
int fac(int n)
{
if (n == 0)
return 1;
else
return n * fac(n - 1);
}
int main()
{
// 求5!
printf("5! = %d\n", fac(5));
// 求3!+5!+7!+9!
int sum1 = fac(3) + fac(5) + fac(7) + fac(9);
printf("3!+5!+7!+9! = %d\n", sum1);
// 求3!+7!+15!+10!
int sum2 = fac(3) + fac(7) + fac(15) + fac(10);
printf("3!+7!+15!+10! = %d\n", sum2);
return 0;
}
```
运行结果如下:
```
5! = 120
3!+5!+7!+9! = 403041
3!+7!+15!+10! = 13128
```
用c语言【问题描述】使用递归编写一个函数fac实现求n的阶乘,并编写主函数调用fac函数,验证函数的正确性。
好的,下面就是 C 语言的代码实现:
```c
#include <stdio.h>
int fac(int n) {
if (n == 0) {
return 1; // 0 的阶乘为 1
} else {
return n * fac(n - 1); // 递归调用求解 n-1 的阶乘
}
}
int main() {
int n = 5;
printf("%d 的阶乘为:%d\n", n, fac(n)); // 输出 5 的阶乘
return 0;
}
```
这个函数使用了递归的思想,当 `n` 为 0 时,直接返回 1,否则递归调用 `fac(n - 1)` 并将结果乘以 `n`,得到 `n` 的阶乘。在主函数中,我们定义了一个整型变量 `n`,并输出它的阶乘,验证了 `fac` 函数的正确性。
阅读全文