请用c语言编写一个程序:分别用递归算法和非递归算法定义一个函数,输出斐波那契数列(1,1,2,3,5,8..........)的前n项的值,并在主函数中进行测试,输出执行结果。。
时间: 2024-04-29 13:22:55 浏览: 91
好的,我会为您提供关于斐波那契数列的代码。以下是递归算法和非递归算法的C语言代码:
递归算法:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n-1) + fibonacci(n-2);
}
int main() {
int n, i;
printf("请输入要输出的斐波那契数列项数: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("%d ", fibonacci(i));
}
printf("\n");
return 0;
}
```
非递归算法:
```c
#include <stdio.h>
int fibonacci(int n) {
int a = 0, b = 1, i, c;
if (n == 0) {
return a;
}
for (i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
int main() {
int n, i;
printf("请输入要输出的斐波那契数列项数: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("%d ", fibonacci(i));
}
printf("\n");
return 0;
}
```
您可以将以上代码复制粘贴到您的C编译器中,编译运行即可看到输出结果。如果有任何问题,请随时联系我。
阅读全文