`
djytotti
  • 浏览: 13347 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

计算Fibonacci数列

    博客分类:
  • Java
阅读更多
import java.util.HashMap;
import java.util.Map;

public class TestFac {

	public static Map<Long, Long> map = new HashMap<Long, Long>();
	
	public static long Fac(long num) {
		long value = 0;
		if(map.containsKey(num)){
			return (Long) map.get(num);
		}else{
			if (num == 1 || num == 2) {
				value= 1;
			} else {
				value= Fac(num - 1) + Fac(num - 2);
			}
			map.put(num, value);
		}
		return value;
	}
	

	public static long Fac2(long num) {
		long one = 1;
		long two = 1;
		long point = 0;
		if (num == 1 || num == 2) {
			return 1;
		}
		for (long i = 3; i <= num; i++) {
			point = one + two;
			one = two;
			two = point;
		}
		return point;
	}

	public static void main(String[] args) {
		System.out.println(Fac(45));	
	}

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics