请用c语言编写一个程序:分别用递归算法和非递归算法定义一个函数,输出斐波那契数列(1,1,2,3,5,8..........)的前n项的值,并在主函数中进行测试,输出执行结果。。
时间: 2024-05-05 21:14:56 浏览: 88
C语言100个经典算法
您好,我可以为您提供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;
printf("请输入需要求前n项的斐波那契数列:");
scanf("%d", &n);
for(int i=0;i<n;i++){
printf("%d ", fibonacci(i));
}
printf("\n");
return 0;
}
```
非递归算法如下所示:
```c
#include <stdio.h>
int main(){
int n, a=1, b=1, c;
printf("请输入需要求前n项的斐波那契数列:");
scanf("%d", &n);
printf("%d %d ", a, b);
for(int i=2;i<n;i++){
c = a + b;
printf("%d ", c);
a = b;
b = c;
}
printf("\n");
return 0;
}
```
您可以根据需要选择递归或非递归算法进行求解,然后在主函数中进行测试。希望对您有所帮助!
阅读全文