编写函数,求正整数n的阶乘。c语言
时间: 2024-05-01 22:19:27 浏览: 9
实现如下:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 1) // 递归终止条件
return 1;
else
return n * factorial(n-1); // 递归式
}
int main(void) {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("%d的阶乘为:%d", n, factorial(n));
return 0;
}
```
该函数使用递归实现阶乘的计算,递归结束条件是 n 等于 1,否则递归调用函数本身,并将 n 减 1 作为参数传入进行递归计算。最终结果为 n 的阶乘。
相关问题
定义一个用于求正整数的阶乘的函数,并调用该函数求5的阶乘。c语言
好的,以下是定义一个用于求正整数的阶乘的函数,并调用该函数求5的阶乘的C语言代码示例:
```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);
printf("5的阶乘是:%d", result);
return 0;
}
```
输出结果为:5的阶乘是:120
该代码中,我们定义了一个名为`factorial`的函数来计算正整数的阶乘。该函数采用递归的方式来实现,当输入值为1时,返回1,否则返回n乘以n-1的阶乘。在`main`函数中,我们调用了`factorial`函数并输出结果。
c语言中用函数求n的阶乘
C语言中可以用函数来求n的阶乘。阶乘是指从1到n的连续整数相乘的结果,即n! = 1 * 2 * 3 * ... * n。
下面是利用递归的方式来实现求解n的阶乘的函数(factorial)的例子:
```
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d的阶乘是:%d\n", n, factorial(n));
return 0;
}
```
上述代码中,函数`factorial`接受一个正整数n作为输入,通过递归的方式将问题划归为规模更小的子问题,并最终得到结果。当n为0时,表示到达递归的结束条件,此时返回1;否则,返回n与factorial(n-1)的乘积。
在主函数`main`中,先提示用户输入一个正整数n,再通过调用`factorial`函数来求解n的阶乘,并将结果打印输出。
例如,当输入5时,输出结果为120,即5的阶乘。
这是一个使用函数来求解n的阶乘的简单示例,希望对你有帮助!