Fibonacci数列的第n项-递归和循环实现
2013-09-10 10:56
204 查看
今天在Linux C编程一站式学习中做了一个练习题,体会递归和循环的异曲同工之妙。
Fibonacci数列是这样定义的:
fib(0)=1
fib(1)=1
...
fib(n)=fib(n-1)+fib(n-2)
C语言递归实现:
int fib(int n)
{
if(n == 0 || n == 1)
{
return 1;
}
else
{
return (fib(n - 1) + fib(n - 2));
}
}
C语言循环实现:
int fib(int n)
{
int a = 1, b = 1, num = 2, tmp;
if(n == 0 || n == 1)
{
return 1;
}
while(num <= n)
{
tmp = a;
a = b;
b = tmp + b;
num++;
}
return b;
}
由于int这个类型本身的大小限制,测试值n不要大于45,否则会越界。
Fibonacci数列是这样定义的:
fib(0)=1
fib(1)=1
...
fib(n)=fib(n-1)+fib(n-2)
C语言递归实现:
int fib(int n)
{
if(n == 0 || n == 1)
{
return 1;
}
else
{
return (fib(n - 1) + fib(n - 2));
}
}
C语言循环实现:
int fib(int n)
{
int a = 1, b = 1, num = 2, tmp;
if(n == 0 || n == 1)
{
return 1;
}
while(num <= n)
{
tmp = a;
a = b;
b = tmp + b;
num++;
}
return b;
}
由于int这个类型本身的大小限制,测试值n不要大于45,否则会越界。
相关文章推荐
- 递归实现求Fibonacci数列的第n项
- 裴波那契数列(循环实现递归)
- 简单谈谈 C/C++ 递归的思想,实现,以及和循环的关系
- JAVA下实现二叉树的先序、中序、后序、层序遍历(递归和循环)
- 二分查找法(递归与循环实现)
- 先序,中序,后序用循环和递归的实现
- PHP实现字符串翻转功能的方法【递归与循环算法】
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 产生fibonacci数列的第i个数字(递归实现,非递归实现)
- Fibonacci数列的递归与非递归实现
- 初步实现无循环(则递归)将任意整数转任意进制字符串
- 数据结构学习之链表(单向、单循环以及双向)(递归实现)
- 用两种递归思路与循环实现单链表的反转
- 链表逆序的循环实现和递归实现
- Fibonacci (斐波那契数列)-循环,递归实现方式
- thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
- 二分查找法(循环与递归分别实现)
- thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
- JAVA下实现二叉树的先序、中序、后序、层序遍历(递归和循环)
- 递归和循环方式实现斐波那契数列