討論串[問題] a的b次方實作時間logb之遞迴寫法
共 6 篇文章
首頁
上一頁
1
2
下一頁
尾頁

推噓0(0推 0噓 3→)留言3則,0人參與, 最新作者yauhh (喲)時間15年前 (2010/03/25 00:50), 編輯資訊
0
0
0
內容預覽:
//break;. a^b 可以換成 a^(b/2 + (b-b/2)) 變成 a^(b/2) * a^(b-b/2).. 而任何 n^k 的底數是 n^0 = 1 或 n^1 = n.. 遞迴程式是:. double power(double a, int b) {. if (b <= 0). r

推噓1(1推 0噓 1→)留言2則,0人參與, 最新作者snowlike (snowlike)時間15年前 (2010/03/24 17:19), 編輯資訊
0
0
0
內容預覽:
未看回覆先試. int fastpow(int num, int pow) {. if(pow>0) {. if(pow&1) {. return fastpow(num, pow-1)*num;. //看過之後覺得orz... //return fastpow(num*num, pow>>1)*n
(還有136個字)

推噓3(3推 0噓 1→)留言4則,0人參與, 最新作者etrexetrex (moonet)時間15年前 (2010/03/24 15:53), 編輯資訊
0
0
1
內容預覽:
http://nopaste.csie.org/b7518. 完全只是把原po的非遞迴改成遞迴 = =. int fastpow_initial(int a, int b). {. return fastpow_recursive(a,b,1);. }. int fastpow_recursive(
(還有61個字)

推噓2(2推 0噓 5→)留言7則,0人參與, 最新作者Benedy (小Ben)時間15年前 (2010/03/24 15:43), 編輯資訊
0
0
0
內容預覽:
原理其實差不多,而且我也沒有寫得挺漂亮. int power (int x, int y) {. if (y == 1) return x;. if (y == 2) return (x * x);. int k = power (x, y / 2);. return (y % 2) ? (k *

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者ledia (下班後才下棋)時間15年前 (2010/03/24 15:42), 編輯資訊
0
0
0
內容預覽:
示意一下就好. my_pow(int a, int b). half <- my_pow(a, ceil(b/2)). if(b&1). return half * half * a;. else. return half * half;. --. 發信站: 批踢踢實業坊(ptt.cc). ◆
首頁
上一頁
1
2
下一頁
尾頁