您的位置:首页 > 职场人生

剑指offer:面试题9,斐波那契数列

2016-11-07 19:15 190 查看
递归算法

#include<stdio.h>
#include <stdlib.h>

int fibonacci(int n)
{
if (n<=0)
{
return 0;
}
if (n==1)
{
return 1;
}
return fibonacci(n-1)+fibonacci(n-2);
}

int main()
{
int n=0;
int sum=0;
scanf("%d",&n);
sum=fibonacc(n);
printf("%d\n",sum);
system("pause");
return 0;
}

递归算法算比较大的数列时重复调用次数太多效率极低

迭代算法

int fibonacc(int n)
{
int i=0;
int a=1;
int b=1;
int c=1;
while ((n>2)&&(i<n-2))
{
c=a+b;
a=b;
b=c;
i++;
}
return c;
}

int main()
{
int n=0;
int sum=0;
scanf("%d",&n);
sum=fibonacc(n);
printf("%d\n",sum);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: