当只与前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; }
防止重复计算