1.递归和非递归分别实现求第n个斐波那契数。
2018-03-26 19:23
253 查看
1.递归和非递归分别实现求第n个斐波那契数。
//int Fib(int num)
//{
// //1 1 2 3 5 8 13....
// if (num<=2)
// return 1;
// else
// return Fib(num - 1) + Fib(num - 2);
//}
int Fib(int num)
{
int first = 1;
int second = 1;
int third = first;
while (num>2)
{
third = first + second;
first = second;
second = third;
num--;
}
return second;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret=Fib(n);
printf("%d\n", ret);
return 0;
}
最终结果:
总结:采用递归的方法运行速度不如非递归,因为每一次运行都会把之前算过的数据重新算一遍。
//int Fib(int num)
//{
// //1 1 2 3 5 8 13....
// if (num<=2)
// return 1;
// else
// return Fib(num - 1) + Fib(num - 2);
//}
int Fib(int num)
{
int first = 1;
int second = 1;
int third = first;
while (num>2)
{
third = first + second;
first = second;
second = third;
num--;
}
return second;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret=Fib(n);
printf("%d\n", ret);
return 0;
}
最终结果:
总结:采用递归的方法运行速度不如非递归,因为每一次运行都会把之前算过的数据重新算一遍。
相关文章推荐
- 递归和非递归分别实现求第n个斐波那契数。
- 用递归和非递归分别实现求第n个斐波那契数。
- 一只程序猿的养成日记 第一章 第十节 递归和非递归分别实现求第n个斐波那契数
- 递归和非递归分别实现求第n个斐波那契数(C语言)
- 递归和非递归分别实现求第n个斐波那契数
- 一只程序猿的养成日记 第一章 第十五节 递归和非递归分别实现求n的阶乘
- 单链表倒置,给你一个头指针,用递归与非递归的方法分别实现;
- 递归和非递归分别实现strlen
- 一只程序猿的养成日记 第一章 第十四节 递归和非递归分别实现strlen
- C语言程序-递归和非递归分别实现strlen
- 递归和非递归分别实现strlen(C语言)
- 面试题:单链表逆置(分别用非递归和递归两种方法实现)
- 斐波那契序列的递归和非递归的实现
- C语言程序-递归和非递归分别实现求n的阶乘
- 递归和非递归分别实现strlen
- 递归和非递归分别实现strlen
- 递归和非递归分别实现求n的阶乘
- C语言分别实现递归和非递归strlen的三种方法
- C语言实现-递归和非递归求第n个斐波那契数
- 查找二叉树的实现(查找,删除,插入)分别用递归和非递归