/*
这道题一定要了解什么是斐波那契数列
1 1 2 3 5 8 ....
就是前两个数之和等于后一位数,具体的百度
方法一:
定义一个int[]数组,数组第一个数和第二个数为1,
第三个数就等于第一个数加第二个数,
第四个数就等于第二个数加第三个数....依次类推
int[] arr = new int[39 + 1];
arr[1] = 1;
arr[2] = 1;
for (int i = 3; i < n; i) {
arr[i] = arr[i - 1] + arr[i - 2];
}
方法二:是下面的不使用数组(不需要开辟新的空间)
*/
class Solution {
public int Fibonacci(int n) {
if(n == 0){
return 0;
}
if(n <= 2){
return 1;
}
//上面两个是基本判断,因为题目给出范围是0~39,
int a = 1; //斐波那契数列 第1个数
int b = 1; //斐波那契数列 第2个数
int sum = 0; //通过循环得到的第3个数
for(int i = 3;i <=n ; i){ //i = 3,i是第几个数,循环到等于n为止
sum = a + b; // 前第一个 + 前第二个
//实现替换接下来循环要计算的数
a = b; //将第2个数赋值给第1个数
b = sum; //将第3个数赋值给第2个数
}
return sum; //返回第n个数
}
}