//Java版本
import java.util.*;
public class CalculateFib{
static Map<Integer,Integer> m=new HashMap<Integer,Integer>();
public static int fib(int n){
if (n<3){
return 1;
}
else if(m.get(n)!=null){
return m.get(n);
}
else{
m.put(n,fib(n-1)+fib(n-2));
}
return m.get(n);
}
public static void main(String[] args){
System.out.println(CalculateFib.fib(20));
}
}
//javascript 版本
function calculateFib(n){
let cache=new Map();
function fib(number){
if(cache.has(number)){
return cache.get(number);
}
else if(number<3){
return 1;
}
else{
cache.set(number,fib(number-1)+fib(number-2));
}
return cache.get(number);
}
return fib(n);
}
//python 版本
def calculateFib(n):
#print(__dict__)
cache={}
def fib(number):
if cache.get(number):
return cache[number]
elif number<3:
return 1
else:
cache[number]=fib(number-1)+fib(number-2)
return cache[number]
return fib(n)