非递归方法实现:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int fib(int n)
{
int a1 = 1;
int a2 = 1;
int a3 = a1;
while (n-- > 2)
{
a3 = a1 + a2;
a1 = a2;
a2 = a3;
}
return a3;
}
int main()
{
int n = 0;
scanf("%d", &n);
printf("输出的结果为:%d\n", fib(n));
system("pause");
return 0;
}递归方法实现:
#include
int fib(int n)
{
if (n <= 2)
return 1;
else
return fib(n - 1) + fib(n - 2);
}
int main()
{
int n = 0;
scanf("%d", &n);
printf("%d\n", fib(n));
system("pause");
return 0;
}
斐波那契数列非递归与递归实现
本文介绍了使用C语言实现斐波那契数列的两种方法:非递归方法通过迭代计算提高了效率;递归方法则更直观地遵循数学定义,但可能在大数值下遇到性能问题。
730

被折叠的 条评论
为什么被折叠?



