斐波那契不做介绍了,直接上代码了,如下:
package com.yarm.test;
/**
* 斐波那契
* @author yarm
*
*/
public class FibTest {
/**
* 强行算,低效算法
* @param n
* @return
*/
public static int fib(int n) {
if( n <= 1)
return 1;
else
return fib(n - 1) + fib(n - 2);
}
/**
* 线性算法
* @param n
* @return
*/
public static int fibonacci(int n) {
if (n <= 1)
return 1;
int last = 1;
int nextToLast = 1;
int result = 1;
for (int i = 2; i <= n; i++) {
result = last + nextToLast;
nextToLast = last;
last = result;
}
return result;
}
//测试
public static void main(String[] args) {
System.out.println(FibTest.fib(10));
System.out.println(FibTest.fibonacci(10));
}
}