귀환 면접은 항상 시험을 쳐서 여기에 놓는다

1937 단어
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 *  
 *  
 * @author Administrator
 *
 */
public class Recursion {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
		int n=0;
		try {
			System.out.println(" 50 :");
			n=Integer.parseInt(strin.readLine());
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(Fibonacci.fibonacci(n));
		Fibonacci.printMap();
	}

}
/**
 *  
 *  
 *  
 * @author Administrator
 *
 */
class Fibonacci{
	private static Map m=new HashMap();// n 
	  static long fibonacci(int n){
	   if(n<=1) return 1;
	   // ! 
	   if(m.containsKey(n))
		   return (long)m.get(n);
	   long store=fibonacci(n-1)+fibonacci(n-2);
	   m.put(n, store);
	   return store;
	   } 
	  /**
	   *  m 
	   *  map
	   */
	  public static void printMap(){
		  Set keySet = m.keySet();
		  Iterator keys=keySet.iterator();
			while(keys.hasNext()){
				int temp=(int)keys.next();
				System.out.println(temp+":"+m.get(temp));
			}
		  
	  }
}

피보나치: 귀속 알고리즘
필기시험은 항상 보는데 여기에 두어라.
1) 최적화를 했다.(캐시)원리: 이미 구한 피보나치 결과를 클래스 변수로 저장하고 메모리에 이 결과가 있으면 다시 계산하지 않고 바로 되돌아갈 수 있다.
2) 맵 인쇄

좋은 웹페이지 즐겨찾기