用c语言递归方法实现一个函数,该函数能够实现n的阶乘,即 n! = n*(n-1)*…*3*2*1;
时间: 2023-10-21 17:19:23 浏览: 90
```c
#include <stdio.h>
int factorial(int n) {
if (n == 1 || n == 0) { // 递归终止条件
return 1;
} else {
return n * factorial(n-1); // 递归调用
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d的阶乘为:%d", n, factorial(n));
return 0;
}
```
相关问题
c语言阶乘n!定义:n!=1(n=1);n!=n*(n-1)!(n>1) 设计求n!的递归函数,调用该函数求 S=1+1/1!+1/2!…+1/n!
以下是C语言求阶乘和S的例子:
```c
#include <stdio.h>
// 求n的阶乘
float fac(int n) {
if (n == 1 || n == 0) {
return 1;
}
return n * fac(n - 1);
}
// 求S
float get_S(int n) {
int i;
float s = 0;
for (i = 0; i <= n; i++) {
s += 1 / fac(i);
}
return s;
}
int main() {
int n = 5;
printf("%d! = %.0f\n", n, fac(n)); // 输出:5! = 120
printf("S = %f\n", get_S(n)); // 输出:S = 2.716667
return 0;
}
```
n的阶乘JieCheng(n)== 1*2*3*... *(n-1)* n == JieCheng(n- 1)*n用c语言
以下是用C语言实现计算n的阶乘的代码:
```c
#include <stdio.h>
int JieCheng(int n) {
if (n == 0) {
return 1;
} else {
return JieCheng(n-1) * n;
}
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
printf("%d的阶乘是%d\n", n, JieCheng(n));
return 0;
}
```
代码中使用了递归的方式来计算n的阶乘。当n等于0时,递归结束,返回1;否则,递归调用JieCheng函数计算n-1的阶乘,并乘以n得到n的阶乘。最后,在main函数中输入一个正整数n,并输出n的阶乘。
阅读全文