用C语言设计求n!(n为正整数)的递归算法
时间: 2024-09-24 12:21:45 浏览: 52
使用C语言求N的阶乘的方法
5星 · 资源好评率100%
在C语言中,我们可以使用递归来设计计算阶乘(n!)的算法。递归是一种解决问题的技术,它将大问题分解成更小的相似问题来解决。下面是一个简单的递归函数示例:
```c
#include <stdio.h>
// 定义递归求阶乘的函数
long long factorial(int n) {
// 基本情况:0! 或 1! 的值为1
if (n == 0 || n == 1)
return 1;
// 递归情况:n! = n * (n - 1)!
else
return n * factorial(n - 1);
}
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
// 检查输入是否合法
if(num < 0) {
printf("错误:阶乘只对非负整数有意义.\n");
return 1;
}
long long result = factorial(num);
printf("n! = %lld\n", result);
return 0;
}
```
在这个例子中,`factorial()`函数会一直递归调用自身,直到达到基本情况为止。然后,结果逐层返回到调用栈,最终得到完整的阶乘。
阅读全文