c语言怎么输入n个X的阶乘
时间: 2024-10-12 22:05:50 浏览: 21
在C语言中计算n个数字的阶乘可以通过循环结构结合递归或者直接循环乘积的方式实现。这里我将提供两个简单的方法:
**方法一:使用循环+递归(避免栈溢出风险)**
```c
#include <stdio.h>
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
int main() {
int n;
printf("请输入一个非负整数n: ");
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
printf("%llu!\t", factorial(i));
}
return 0;
}
```
**方法二:直接循环计算阶乘**
```c
#include <stdio.h>
#include <stdlib.h> // 需要引入stdlib库才能处理大整数
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;
printf("请输入一个非负整数n: ");
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
printf("%llu!\t", factorial(i));
}
return 0;
}
```
在上述代码中,用户会被提示输入一个非负整数n,然后程序会计算并打印从1到n的所有数字的阶乘。
阅读全文