用c语言编写一个数阶乘递归和非递归函数,并分别在主函数中调用,输出十以内所有的阶乘
时间: 2024-12-06 13:23:15 浏览: 53
在C语言中,我们可以编写两个函数来计算一个整数的阶乘:一个是递归版本,另一个是非递归版本。以下是代码示例:
**递归版本的阶乘函数:**
```c
#include <stdio.h>
unsigned long long factorial_recursive(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial_recursive(n - 1);
}
```
**非递归版本的阶乘函数:**
```c
unsigned long long factorial_iterative(int n) {
unsigned long long result = 1;
for (int i = 2; i <= n; ++i) {
result *= i;
}
return result;
}
```
在主函数`main()`中调用这两个函数并打印结果:
```c
int main() {
int numbers[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int size = sizeof(numbers) / sizeof(numbers[0]);
printf("阶乘结果(递归):\n");
for (int i = 0; i < size; ++i) {
printf("%d! = %llu\n", numbers[i], factorial_recursive(numbers[i]));
}
printf("\n阶乘结果(迭代):\n");
for (int i = 0; i < size; ++i) {
printf("%d! = %llu\n", numbers[i], factorial_iterative(numbers[i]));
}
return 0;
}
```
运行此程序将输出每个数从0到9的阶乘,首先是递归版,然后是非递归版。
阅读全文
相关推荐


















