package Ġcom . kot ling round . kt math . fib onacci Ċ Ċ fun Ġnth Tri bon acci ( n : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( n Ġ== Ġ 0 Ġ|| Ġn Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġfirst Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġsecond Ġ= Ġ 1 ĊĠĠĠ Ġvar Ġthird Ġ= Ġ 1 ĊĊĠĠĠ Ġfor Ġ( x Ġin Ġ 3 .. n ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfourth Ġ= Ġfirst Ġ+ Ġsecond Ġ+ Ġthird ĊĠĠĠĠĠĠĠ Ġfirst Ġ= Ġsecond ĊĠĠĠĠĠĠĠ Ġsecond Ġ= Ġthird ĊĠĠĠĠĠĠĠ Ġthird Ġ= Ġfourth ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġthird Ċ } Ċ Ċ fun Ġnth Tri bon acci With Hash ( n : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġhash Ġ= ĠHashMap < Int , ĠInt >() ĊĊĠĠĠ Ġreturn Ġwhen Ġ( n ) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcached Ġ= Ġhash [ n ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cached Ġ!= Ġnull ) Ġcached Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalculated Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnth Tri bon acci With Hash ( n Ġ- Ġ 3 ) Ġ+ Ġnth Tri bon acci With Hash ( n Ġ- Ġ 2 ) Ġ+ Ġnth Tri bon acci With Hash ( n Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhash [ n ] Ġ= Ġcalculated ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalculated ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }