什么是斐波那契数列,1,1,2,3,5,8,13...这样一个数列就是斐波那契数列,求第n项的值。
观察数列可得,除了第一项和第二项,所有的数列的值都是前一项和前一项的前一项的加和,转换成函数也就是f(n) = f(n-1) + f(n-2)
我们可以按照顺序,求出每个值,步骤如下:
1. f(0)=0; f(1)=1; f(2)=1;
2. 从f(3)开始走新的算法,
先把前两个数的和存下来即:f(n) = f(n-1) + f(n-2) 这里的f(n)=temp,
然后下标往后移动,即 f(n-2) = f(n-1) ; f(n-1)= f(n);
当循环结束的时候,f(n)为指定求的值
循环的意义在于把所求值的前两项找出来
package testFile;
public class TestDemo01 {
// 斐波那契数列 求第n项的值
public static int fbnq(int n) {
if (n == 0) {
return 0;
} else if (n == 1 || n == 2) {
return 1;
}
// 前项的值
int pre = 1;
// 前项的前项的值
int pre_pre = 1;
// 所求当前项的值
int temp = 0;
for (int i = 3; i <= n; i++) {
// 顺序为 pre_pre,pre,pre_pre+pre
// 整体数据往后移动
temp = pre_pre + pre;
pre_pre = pre;
pre = temp;
}
return temp;
}
public static void main(String[] args) {
int fbnq = fbnq(8);
System.out.println("fbnq====" + fbnq);
}
}