用递归和非递归方法求第n个斐波那锲数

来源:互联网 发布:苏联解体知乎 编辑:程序博客网 时间:2024/05/16 15:51
斐波那契数列:1,1,2,3,5,8,13,21……这个数列从第三项开始,每一项都等于前两项之和。


如果设F(n)为该数列的第n项(n∈N+)。菲波那切数列可以概括成如下形式:



在这里我们输出第6个斐波那锲数 

递归方法

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>
int fib(int n)
{
while (n < 2)
return n;
while (n >= 2)
return fib(n - 1) + fib(n - 2);
}
int main()
{
printf("%d\n", fib(6));
system("pause");
return 0;
}

//非递归

#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>
int fib(int n)
{
int i = 0, f1 = 0, f2 = 1, f3 = 0;
if (n < 2)
return n;
if (n>=2)
for (i = 2; i <= n;i++)
{
f3 = f1 + f2;
f1 = f2;
f2 =f3;
}
return f3;
}
int main()
{
printf("%d\n", fib(6));
system("pause");
return 0;
}



阅读全文
1 0
原创粉丝点击