阶乘是一个数学概念,表示一个正整数与比它小的所有正整数的乘积。例如,5的阶乘(记作5!)是1*2*3*4*5=120。在计算机编程中,可以使用不同的方法来实现阶乘的计算,包括递归和循环。
```c
include
unsigned long long factorial(int n);
int main() {
int n;
unsigned long long result;
printf("请输入一个正整数: ");
scanf("%d", &n);
result = factorial(n);
printf("%d的阶乘为: %llu\n", n, result);
return 0;
}
unsigned long long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
```
此外,也可以使用循环来实现阶乘的计算:
```c
include
unsigned long long factorial(int n) {
unsigned long long result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main() {
int n;
unsigned long long result;
printf("请输入一个正整数: ");
scanf("%d", &n);
result = factorial(n);
printf("%d的阶乘为: %llu\n", n, result);
return 0;
}
```
这两种方法都可以有效地计算给定正整数的阶乘。递归方法更简洁,但可能会导致栈溢出,特别是对于较大的输入值。循环方法则相对稳定,适用于各种规模的输入。