求斐波那契数
斐波那契数是后一个数为前两位数之和
0,1,1,2,3,5,8······
- 递归法
需要的值(第n位)就是前两位数的和(第n-1位 + 第n-2位)
第一位和第二位确定
public static int fib(int n) {
if (n <= 1) return n;
return fib(n - 1) + fib(n - 2);
}
缺点:数字太大会执行不出来
- for循环
n1(第一位)=0
n2(第二位)=1
n3=n1+n2
n4=n2+n3
······
public static int fib(int n) {
if (n <= 1) return n;
int first = 0;
int second = 1;
for (int i = 0; i < n - 1; i++) {
int sum = first + second;
first = second;
second = sum;
}
return second;
}
first和second为当前步数的第一位和第二位
第一次循环时是first为n1,second为n2
第二次first为n2,second为n3
······
这样加到最后second的值即为所求