/** * 找出斐波那契数 * */ public class ImprovedFibonacci { /** * 复杂度O(2^n) * @param index 第index个斐波那契数 * @return */ private static long fib(long index){ if(index==1){ return 0; } else if(index==2){ return 1; } else { return fib(index-1)+fib(index-2); } } /** * 复杂度O(n) * @param index 第index个斐波那契数 * @return */ private static long fib2(long index){ long f0 = 0; long f1 = 1; long f2 = 1; if(index==1){ return f0; } else if(index==2){ return f1; } for(int i=3;i<index;i++){ f0 = f1; f1 = f2; f2 = f0+f1; } return f2; } /** * @param args */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Enter an index for Fibonacci number:"); while(scanner.hasNext()){ long index = scanner.nextLong(); if(index==0){ System.exit(0); } else { System.out.println("Fibonacci num at index "+index +" is "+fib2(index)); } } } }
查找斐波那契数
猜你喜欢
转载自ncs123.iteye.com/blog/2087069
今日推荐
周排行