C语言斐波那契数列的多种实现

来源:互联网 发布:淘宝拍卖房产过户 编辑:程序博客网 时间:2024/05/20 06:55
//递归实现#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>#include<stdlib.h>int fibc(int n)//缺点:如果n较大,则效率大大降低{if(n<=1)return n;elsereturn fibc(n-1)+fibc(n-2);}int main(){int num = 0;int ret = 0;printf("请输入一个整数:");scanf("%d",&num);ret = fibc(num);printf("第%d个斐波那契数为%d\n",num,ret);system("pause");return 0;}//用数组保存实现#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>#include<stdlib.h>int fibc(int n){int arr[50]={0};//缺点:数组大小不灵活,通用性差int i=0;for(i=0; i<=n; i++){    if(i<=1)arr[i]=i;elsearr[i]=arr[i-1]+arr[i-2];}return arr[n];}int main(){int num = 0;int ret = 0;printf("请输入一个整数:");scanf("%d",&num);ret = fibc(num);printf("第%d个斐波那契数为%d\n",num,ret);system("pause");return 0;}#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>#include<stdlib.h>int fibc(int n){int num1 = 0;int num2 = 1;int sum = 0;int i = 0;for(i=2; i<=n; i++){    sum = num1+num2;num1 = num2;num2 = sum;}return sum;}int main(){int num = 0;int ret = 0;printf("请输入一个整数:");scanf("%d",&num);ret = fibc(num);printf("第%d个斐波那契数为%d\n",num,ret);system("pause");return 0;}

0 0