作者yoco315 (眠月)
看板Soft_Job
標題Re: [請益] MTK 面試測驗請教
時間Sat Jun 12 01:00:05 2010
※ 引述《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
1F:→ xam:這個厲害, 看得出來題目設計過 06/12 01:01
2F:推 Jeffxx:所以其實第一題是提示XD 06/12 01:04
3F:→ yoco315:嗯 提示提很大 06/12 01:06
4F:推 guest0079:取餘數會比較快嗎 直接用三層if可能比較快 原題也說用if 06/12 01:13
5F:→ ibmibmibm:(x % 8) == (x & 7) 06/12 01:14
6F:推 ibmibmibm:不過(231%8) == (687%8)耶@@ 06/12 01:20
7F:推 ibmibmibm:看來改%16就可以了 06/12 01:22
8F:推 bobhsiao:%8 compiler 應該會最佳化吧 06/12 06:59
9F:推 final01:錄取了 06/12 11:02
10F:→ yoco315:謝謝樓上賞識 qq 06/12 13:05
11F:→ xlk:f[~n&16](); 06/12 14:14
12F:→ xlk:15才對@@ 算是小改進 06/12 14:21
13F:→ xlk:f[n&15>>1](); 哈.. 06/12 14:29
14F:→ xlk:f[n>>1&15](); precedence.. :( 這題目不用明確比較? 06/12 15:20
15F:推 motocyman:厲害! 一眼就看出規則 06/12 20:54
16F:推 chialang:bit[3:1] 三個 bit 就能區分了 06/13 00:39
17F:推 arenda:取%會比if快嗎? 06/13 16:41
18F:推 arenda:抱歉 % powers of 2 C compiler會自動最佳化 06/13 18:34
19F:推 liptonbin:好強阿 你想多久阿 06/14 20:59
20F:推 bobhsiao:原 PO 應該是直覺反應吧不用想多久的 06/15 07:30