2018년 6월 11일 월요일

fibonnacci

/**
 * Fibonacci Sequence
 * <pre>
 * <b>History:</b>
 *    2018.06.11, 0.1, KIM TAE HO
 * </pre>
 *
 * @author  KIM TAE HO
 * @version 0.1, 2018.06.11
 * @see    None
 */
import java.util.HashMap;
import java.util.Map;
import java.math.BigInteger;

public class Fibonacci {

    private static Map<Integer, BigInteger> cacheOfSum = new HashMap<>();
public static void main(String[] args)
{

int needNumber = 8181;

cacheOfSum.put(0, BigInteger.ZERO);
cacheOfSum.put(1, BigInteger.ONE);

        System.out.println(getFibonacci(needNumber));

}

    /**
     * (Fibonacci Logic)
     * @param sequenceNumber Atom of fibonacci more then 0   
     * @return  Sum Number with preview Number
     */

private static BigInteger getFibonacci(int sequenceNumber)
{
    if (cacheOfSum.containsKey(sequenceNumber))
    {
        return cacheOfSum.get(sequenceNumber);
    }
   
        return recursiveCachedSum(sequenceNumber);
}

    /**
     * Cached Value Of specipied serquence Number that fibonacci
     * @param sequenceNumber of using memoization
     * @return  Sum Number with preview Number
     */
private static BigInteger recursiveCachedSum(int sequenceNumber)
{
   
    BigInteger calcSum = getFibonacci(sequenceNumber - 2).add(getFibonacci(sequenceNumber - 1));
    cacheOfSum.put(sequenceNumber, calcSum);
   
    return calcSum;
}
}


Related Posts:

  • [日本語-複合動詞] 舞い上げる [日本語-複合動詞] 舞い上げる Sugoi Ebooks(Writen in English) Naver Cafe Sugoi Japanese Find a Job in Japan [日本語-複合動詞] 舞い上げる [日本語-複合動詞] 舞い上げる : まいあげる (먼지 등을) 흩날리다. 열차는 눈을 흩날리면서 나아갔다. 列車は雪を舞い上… Read More
  • [日本語-複合動詞] 掴み入れる [日本語-複合動詞] 掴み入れる Sugoi Ebooks(Writen in English) Naver Cafe Sugoi Japanese Find a Job in Japan [日本語-複合動詞] 掴み入れる [日本語-複合動詞] 掴み入れる : つかみいれる 잡아서 넣다. 그녀는 많은 오렌지를 봉투에 집어 넣었다. 彼女はたくさんの… Read More
  • [日本語-複合動詞] 浸り込む [日本語-複合動詞] 浸り込む Sugoi Ebooks(Writen in English) Naver Cafe Sugoi Japanese Find a Job in Japan [日本語-複合動詞] 浸り込む [日本語-複合動詞] 浸り込む : ひたりこむ 그 상태에 충분히 잠기다. 편안한 마음으로 음악에 잠겼다. ゆったりした気持ちで、… Read More
  • [日本語-複合動詞] 怒鳴り散らす [日本語-複合動詞] 怒鳴り散らす Sugoi Ebooks(Writen in English) Naver Cafe Sugoi Japanese Find a Job in Japan [日本語-複合動詞] 怒鳴り散らす [日本語-複合動詞] 怒鳴り散らす : どなりちらす 주위에 아랑곳하지 않고 호통치다. 그는 부하에게 마구 호통쳐댔다. … Read More
  • [日本語-複合動詞] 読みこなす [日本語-複合動詞] 読みこなす Sugoi Ebooks(Writen in English) Naver Cafe Sugoi Japanese Find a Job in Japan [日本語-複合動詞] 読みこなす [日本語-複合動詞] 読みこなす : よみこなす 내용을 충분히 이해하며 읽다. 영자신문을 읽고 내용을 잘 이해하는 요령을 … Read More

0 comments:

댓글 쓰기