斐波那契数列的几种求法
2016-06-15 17:01
162 查看
斐波那契数列:1,1,2,3,5,8,13,21,34.........
要求数列的第n项
解法一:利用两个变量,具体做法如下:
int Fbnq(int n)
{
int a = 1;
int b = 1;
if (n <= 0)
{
return 0;
}
if (n == 1||n == 2)
{
return 1;
}
for (int i = 1; i < n / 2; i++)
{
a = a + b;
b = a + b;
}
if (n % 2 == 1)
{
return a;
}
else
{
return b;
}
}
解法二:利用一个数组
int Fbnq(int n)
{
int fbnq[100];
if (n <= 0)
{
return 0;
}
if (n == 1 || n == 2)
{
return 1;
}
fbnq[1] = 1;
fbnq[2] = 1;
for (int i = 3; i < n+1; i++)
{
fbnq[i] = fbnq[i - 1] + fbnq[i - 2];
}
return fbnq
;
}解法三:递归
int Fbnq(int n)
{
if (n <= 1)
return n;
else
return Fbnq(n - 1) + Fbnq(n - 2);
}
要求数列的第n项
解法一:利用两个变量,具体做法如下:
int Fbnq(int n)
{
int a = 1;
int b = 1;
if (n <= 0)
{
return 0;
}
if (n == 1||n == 2)
{
return 1;
}
for (int i = 1; i < n / 2; i++)
{
a = a + b;
b = a + b;
}
if (n % 2 == 1)
{
return a;
}
else
{
return b;
}
}
解法二:利用一个数组
int Fbnq(int n)
{
int fbnq[100];
if (n <= 0)
{
return 0;
}
if (n == 1 || n == 2)
{
return 1;
}
fbnq[1] = 1;
fbnq[2] = 1;
for (int i = 3; i < n+1; i++)
{
fbnq[i] = fbnq[i - 1] + fbnq[i - 2];
}
return fbnq
;
}解法三:递归
int Fbnq(int n)
{
if (n <= 1)
return n;
else
return Fbnq(n - 1) + Fbnq(n - 2);
}
相关文章推荐
- ruby 数组使用教程
- Ruby中的数组和散列表的使用详解
- C#实现AddRange为数组添加多个元素的方法
- C#比较二个数组并找出相同或不同元素的方法
- C#递归算法之分而治之策略
- C#动态调整数组大小的方法
- 详解Lua中的数组概念知识
- Perl中的列表和数组学习笔记
- 有关数据库SQL递归查询在不同数据库中的实现方法
- 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)
- C#中数组初始化与数组元素复制的方法
- C#交错数组用法实例
- Linux Shell 数组建立及使用技巧
- PowerShell数组的一些操作技巧
- C#中的递归APS和CPS模式详解
- C#通过yield实现数组全排列的方法
- C#不重复输出一个数组中所有元素的方法
- C#实现将数组内元素打乱顺序的方法
- WinForm实现按名称递归查找控件的方法
- C#递归方法实现无限级分类显示效果实例