作者etrexetrex (moonet)
看板C_and_CPP
標題Re: [問題] a的b次方實作時間logb之遞迴寫法
時間Wed Mar 24 23:53:50 2010
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
推 ledia:很有 LISP 的感覺 XD 03/24 23:56
推 conan77420:我就是在temp的地方寫不出來,原來忘了要丟進參數 03/25 00:14
→ etrexetrex:其實就是把遞迴過程中要用到的變數都弄成參數 03/25 00:16
推 conan77420:感謝,學起來了!!! 03/25 00:21