请用c语言写一组代码,用来求阶乘,直到无法求出阶乘的那个数,把这个数打印出来
时间: 2024-09-27 08:06:13 浏览: 38
在 C 语言中,我们可以编写一个递归函数来计算阶乘。但是需要注意的是,当输入的数字较大时,可能会导致整型溢出。这里是一个简单的示例,它会一直递归计算,直到超出 `int` 类型的最大值:
```c
#include <stdio.h>
// 定义阶乘函数,使用 long long 避免溢出
long long factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int i = 1;
printf("Calculating factorials:\n");
while (1) {
long long result = factorial(i);
// 如果结果超出了整型范围,中断循环并打印最后的数
if (result < 0) {
break;
}
printf("%d! = %lld\n", i, result);
i++;
}
printf("The largest number whose factorial could be calculated is: %d\n", i - 1);
return 0;
}
```
运行这个程序,你会看到一系列的阶乘结果,直到遇到第一个导致整数溢出的数字,然后程序会打印出该数值。
阅读全文