题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
总之不能用递归!
代码:
public class Solution {
public int Fibonacci(int n) {
//当n=0,f(n)=0;当n=1,f(n)=1;当n>1,f(n)=f(n-1)+(n-2);
//输入非负整数返回0
if(n<=0){
return 0;
}
//输入1或者2的时候返回1
if(n==1||n==2){
return 1;
}
//用两个变量记录n-1和n-2;
int fn1=0,fn2=1;
int currentnum=0;
for(int i=2;i<=n;i++){
currentnum=fn1+fn2;
//这是一个往后迭代的过程,3=2+1;
//1=2;2=3;下一步就是 4=2+3;
fn1=fn2;
fn2=currentnum;
}
return currentnum;
}
}