编写函数,求正整数n的阶乘。c语言
时间: 2024-05-01 08:19:27 浏览: 90
实现如下:
```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 的阶乘。
相关问题
用递归函数求n的阶乘用c语言
在C语言中,你可以使用递归函数来计算一个整数n的阶乘。阶乘是指从1乘到该数的所有正整数的积,例如5的阶乘(5!)等于5 * 4 * 3 * 2 * 1。下面是一个简单的递归函数示例:
```c
#include <stdio.h>
// 定义递归函数,用于计算阶乘
long long factorial(int n) {
// 基线条件:0和1的阶乘都是1
if (n == 0 || n == 1)
return 1;
else
// 递归条件:n的阶乘 = n * (n - 1)的阶乘
return n * factorial(n - 1);
}
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
// 检查输入是否合法
if (num < 0) {
printf("错误:阶乘只对非负整数有意义.\n");
} else {
long long result = factorial(num);
printf("结果是:%lld\n", result);
}
return 0;
}
```
定义一个用于求正整数的阶乘的函数,并调用该函数求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`函数并输出结果。
阅读全文