Re: [請益] MTK 面試測驗請教

看板Soft_Job作者 (眠月)時間15年前 (2010/06/12 01:00), 編輯推噓12(1208)
留言20則, 12人參與, 最新討論串3/14 (看更多)
※ 引述《hanck ( )》之銘言: : void main(int n) : { : if n==33 execute func1; : if n==67 execute func2; : if n==324 execute func3; : if n==231 execute func4; : if n==687 execute func5; : } void 麵 () { void (*f[8])() = { 0, func1, 0, func2, func3, func4, 0, func5 } ; f[n%8]() ; } -- To iterate is human, to recurse, divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.114.4

06/12 01:01, , 1F
這個厲害, 看得出來題目設計過
06/12 01:01, 1F

06/12 01:04, , 2F
所以其實第一題是提示XD
06/12 01:04, 2F

06/12 01:06, , 3F
嗯 提示提很大
06/12 01:06, 3F

06/12 01:13, , 4F
取餘數會比較快嗎 直接用三層if可能比較快 原題也說用if
06/12 01:13, 4F

06/12 01:14, , 5F
(x % 8) == (x & 7)
06/12 01:14, 5F

06/12 01:20, , 6F
不過(231%8) == (687%8)耶@@
06/12 01:20, 6F

06/12 01:22, , 7F
看來改%16就可以了
06/12 01:22, 7F

06/12 06:59, , 8F
%8 compiler 應該會最佳化吧
06/12 06:59, 8F

06/12 11:02, , 9F
錄取了
06/12 11:02, 9F

06/12 13:05, , 10F
謝謝樓上賞識 qq
06/12 13:05, 10F

06/12 14:14, , 11F
f[~n&16]();
06/12 14:14, 11F

06/12 14:21, , 12F
15才對@@ 算是小改進
06/12 14:21, 12F

06/12 14:29, , 13F
f[n&15>>1](); 哈..
06/12 14:29, 13F

06/12 15:20, , 14F
f[n>>1&15](); precedence.. :( 這題目不用明確比較?
06/12 15:20, 14F

06/12 20:54, , 15F
厲害! 一眼就看出規則
06/12 20:54, 15F

06/13 00:39, , 16F
bit[3:1] 三個 bit 就能區分了
06/13 00:39, 16F

06/13 16:41, , 17F
取%會比if快嗎?
06/13 16:41, 17F

06/13 18:34, , 18F
抱歉 % powers of 2 C compiler會自動最佳化
06/13 18:34, 18F

06/14 20:59, , 19F
好強阿 你想多久阿
06/14 20:59, 19F

06/15 07:30, , 20F
原 PO 應該是直覺反應吧不用想多久的
06/15 07:30, 20F
文章代碼(AID): #1C4ckOQi (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1C4ckOQi (Soft_Job)