c语言球1到20阶乘
时间: 2024-12-22 22:27:50 浏览: 68
在 C 语言中计算从 1 到 20 的阶乘可以使用循环结构和递归函数。这里我们先介绍一种简单的非递归方法:
```c
#include <stdio.h>
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1; // 阶乘的基本情况,0! 和 1! 都等于 1
unsigned long long result = 1;
for (int i = 2; i <= n; ++i) {
result *= i;
}
return result;
}
int main() {
int numbers[] = {1, 2, 3, ..., 19, 20}; // 需要将省略的部分填上1到20的所有整数
int length = sizeof(numbers) / sizeof(numbers[0]);
for (int i = 0; i < length; ++i) {
printf("The factorial of %d is %llu\n", numbers[i], factorial(numbers[i]));
}
return 0;
}
```
在这个程序中,`factorial` 函数逐个相乘从 2 到 `n` 的数字得到阶乘结果。在 `main` 函数里,数组 `numbers` 存储了从 1 到 20 的值,并遍历数组打印出每个数的阶乘。
如果你想了解递归版本的实现,可以这样做:
```c
unsigned long long factorial_recursion(int n) {
if (n == 0 || n == 1)
return 1;
return n * factorial_recursion(n - 1);
}
// 使用递归版本
for (int i = 1; i <= 20; ++i) {
printf("The factorial of %d is %llu\n", i, factorial_recursion(i));
}
```
递归版本更简洁,但它可能会因为递归深度过大导致栈溢出,所以对于较大的数值,非递归版本更为实用。
阅读全文
相关推荐


















