- public int Fibonacci(int n) {
- // 如果 n=0, 返回 0, 如果 n=1 或者 n=2, 返回 1
- if (n <3) {
- return n> 0 ? 1 : 0;
- }
- int f1 = 1;//f1 指针指向前面一个数
- int f2 = 1;//f1 指针指向后面一个数
- for (int i = 3; i <= n; i++) {
- // sum 临时保存 f1 + f2 的和
- int sum = f1 + f2;
- f1 = f2;//f1 指针指向 f2, 指向下一次求和的前面一个数
- f2 = sum;//f2 指针指向 sum, 指向下一次求和的后面一个数
- }
- // 返回值返回 sum 或者 f2 都可以
- return f2;
- }
来源: http://www.bubuko.com/infodetail-3035693.html