Re: [問題] a的b次方實作時間logb之遞迴寫法

看板C_and_CPP作者 (moonet)時間15年前 (2010/03/24 15:53), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串4/6 (看更多)
http://nopaste.csie.org/b7518 完全只是把原po的非遞迴改成遞迴 = = int fastpow_initial(int a, int b) { return fastpow_recursive(a,b,1); } int fastpow_recursive(int a, int b, int temp) { if(b == 0) return temp; else if(b&1) return fastpow_recursive(a*a,b>>1,temp*a); else return fastpow_recursive(a*a,b>>1,temp); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.169.77

03/24 23:56, , 1F
很有 LISP 的感覺 XD
03/24 23:56, 1F

03/25 00:14, , 2F
我就是在temp的地方寫不出來,原來忘了要丟進參數
03/25 00:14, 2F

03/25 00:16, , 3F
其實就是把遞迴過程中要用到的變數都弄成參數
03/25 00:16, 3F

03/25 00:21, , 4F
感謝,學起來了!!!
03/25 00:21, 4F
文章代碼(AID): #1BgZMHDO (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BgZMHDO (C_and_CPP)