当只与前1个或者2个状态有关系时,可以使用变量来简化。
斐波那契数列
http://www.nowcoder.com/questionTerminal/c6c7742f5ba7442aada113136ddea0c3
请注意控制循环次数,循环次数应该去除掉初始变量的次数。
/**
* 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项
* (从0开始,第0项为0,第1项是1)。
* n<=39
* @param n 整数n
* @return 斐波那契数列的第n项
*/
public int Fibonacci(int n) {
if (n < 2) {
return n;
}
int f1 = 0, f2 = 1;
int fn = f1+f2;
for (int i = 2; i <= n; i++) {
fn = (f1 + f2)%1000000007;
f1 = f2;
f2 = fn;
}
return fn;
}
防止重复计算

查看20道真题和解析