算法设计C语言:分别计算并显示输出阶乘 3!、5!、7!、9!和n!(n∈{10,11,…,19})并计算并显示输出费波那契数 F3、F5、F7、F9和Fn (n∈{10,11,…,19})。
时间: 2024-11-04 18:13:49 浏览: 20
【最全】阶乘算法!(python和C语言)
在C语言中,我们可以使用递归和循环结构来计算阶乘和斐波那契数列。这里给出两个函数的示例:
**计算阶乘:**
```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 numbers[] = {3, 5, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
for (int i = 0; i < sizeof(numbers) / sizeof(numbers[0]); i++) {
printf("%d! = %llu\n", numbers[i], factorial(numbers[i]));
}
return 0;
}
```
**计算斐波那契数列:**
```c
#include <stdio.h>
unsigned long long fib(int n) {
if (n <= 1)
return n;
else
return fib(n - 1) + fib(n - 2);
}
int main() {
int fibonacci_numbers[] = {3, 5, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
for (int i = 0; i < sizeof(fibonacci_numbers) / sizeof(fibonacci_numbers[0]); i++) {
printf("F%u = %llu\n", fibonacci_numbers[i] + 2, fib(fibonacci_numbers[i]));
}
return 0;
}
```
这两个程序分别用于计算给定整数范围内的阶乘和斐波那契数。注意,对于较大的数值,递归可能会导致栈溢出,因此可以考虑使用迭代方法或者预计算部分结果来优化。
阅读全文