斐波那契数列
斐波那契数列,又称为黄金分割数列( 当n趋于无穷大时,前一项与后一项的比值越来越趋于黄金分割比0.618 ),因数学家列昂纳多·斐波那契(Leonardoda Fibonacci),以兔子繁殖为例引入,故又称为“兔子数列”,指的是这样一个数列:1,1,2,3,5,8,13,21,34… … 这个数列从第三项开始,每一项都等于前两项数列之和,即F(n)=F(n-1)+F(n-2)。
斐波那契数列代码实现
此代码是最容易理解的方式
static int fib1(int n) {
int first = 1;
int second = 1;
int result = 0;
if (n <= 2)
return 1;
else {
for (int i = 3; i <= n; i++) {
result = first + second;
first = second;
second = result;
}
}
return result;
}
我们可以对代码进行一定的优化,用更少的变量来实现,是代码看起来也更美观。
static int fib2(int n) {
int a = 0;
int b = 1;
for (long i = 0; i < n; i++) {
b = a + b;
a = b - a;// 旧b赋给a
}
return a;
}
递归方式也可以实现我们的需求:
static int fib(int n) {
return n > 2 ? fib(n - 1) + fib(n - 2) : 1;
}
总结:
- 代码最少并不一定代表代码就是最简单,最容易理解的,通过数据结构和算法达到使我们代码更精简,功能更强大,可移植性更强。