c语言中给定一个非负整数n(n<=12),求n的阶乘。
时间: 2024-10-12 18:10:45 浏览: 56
C语言 实现N阶乘的程序代码
5星 · 资源好评率100%
在 C 语言中,计算非负整数 n 的阶乘可以使用循环结构,因为阶乘的定义就是所有小于等于 n 的正整数相乘的结果。下面是一个简单的函数示例:
```c
#include <stdio.h>
// 计算阶乘的递归函数
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0! 和 1! 都是 1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,将大数分解成小数乘积
}
}
int main() {
int n;
printf("请输入一个非负整数 (n <= 12): ");
scanf("%d", &n);
// 检查输入是否合法
if (n > 12) {
printf("输入错误,n 必须小于或等于 12.\n");
} else {
unsigned long long result = factorial(n);
printf("n! = %llu\n", result);
}
return 0;
}
```
这个程序首先检查输入值是否在范围内,然后递归地计算阶乘。需要注意的是,由于阶乘的增长非常快,当 n 较大时可能会导致溢出,所以这里使用了 `unsigned long long` 类型来存储结果。
阅读全文