作者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