阅读背景:

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

来源:互联网 
//递归实现
#define _CRT_SECURE_NO_WARNINGS 1 
#include<stdio.h>
#include<stdlib.h>

int fibc(int n)//缺陷:如果n较大,则效力大大下降
{
	if(n<=1)
		return n;
	else
		return 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;
		else
			arr[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;
}//递归实现
#define _CRT_SECURE_NO_WARNINGS 1 
#include



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: