fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġstep Ġ= Ġcli mb St airs Bottom Up 2 ( 1 0 ) ĊĠĠĠ Ġprintln ( step ) Ċ } Ċ Ċ // ĠTop - Down Ċ fun Ġcli mb St airs Top Down ( n : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġfun Ġcli mb St airs ( n : ĠInt , Ġstep Array : ĠInt Array ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( step Array [ n ] Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep Array [ n ] Ġ= Ġcli mb St airs ( n Ġ- Ġ 1 , Ġstep Array ) Ġ+ Ġcli mb St airs ( n Ġ- Ġ 2 , Ġstep Array ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġstep Array [ n ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( n Ġ== Ġ 1 ) Ġreturn Ġ 1 ĊĠĠĠ Ġval Ġstep Array Ġ= ĠInt Array ( n ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġcli mb St airs ( n Ġ- Ġ 1 , Ġstep Array ) Ċ } Ċ Ċ // ĠBottom - Up Ġwith Ġarray Ċ fun Ġcli mb St airs Bottom Up 1 ( n : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( n Ġ== Ġ 1 ) Ġreturn Ġ 1 ĊĠĠĠ Ġval Ġstep Array Ġ= ĠInt Array ( n ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 2 Ġuntil Ġn ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstep Array [ i ] Ġ= Ġstep Array [ i Ġ- Ġ 1 ] Ġ+ Ġstep Array [ i Ġ- Ġ 2 ] ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġstep Array [ n Ġ- Ġ 1 ] Ċ } Ċ Ċ // ĠBottom - Up Ġwith Ġtwo Ġvariable Ċ fun Ġcli mb St airs Bottom Up 2 ( n : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( n Ġ== Ġ 1 ) Ġreturn Ġ 1 ĊĠĠĠ Ġvar Ġtwo Step Previous Ġ= Ġ 1 ĊĠĠĠ Ġvar Ġone Step Previous Ġ= Ġ 2 ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 2 Ġuntil Ġn ) Ġ{ ĊĠĠĠĠĠĠĠ Ġone Step Previous Ġ+= Ġtwo Step Previous . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtwo Step Previous Ġ= Ġone Step Previous ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġone Step Previous Ċ } Ċ