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

看板Soft_Job作者 (十三)時間15年前 (2010/06/12 08:45), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串6/14 (看更多)
一定用if表達的話,我以為是divide and conquer,總比較次數最低。 if ( n > 231 ) { if ( n > 324 ) func5; else func3; } else { if ( n > 67 ) func4; else { if ( n > 33 ) func2; else func1; } } Bleed ※ 引述《loveflames (咕啾咕啾魔法陣)》之銘言: : : 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; : : } : : 保證 n 一定是上面五個數字之一 : : 使用if, 請用你認為最快的方法實作main : : 這兩題難度都是標記困難,所以我想第二題應該不會只是單純用if else : : 而第一題無法下手......不知道有沒有高手指導一下 : void main(int n) : { : if n<68 : if n>33 {func2();return;} : else {func1();return;} : if n<325 : if n>231 {func3();return;} : else {func4();return;} : func5(); : } : 這樣最多只要三次比較 : 應該不能再降低了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.123.116

06/12 14:26, , 1F
果然不能比三次更低了
06/12 14:26, 1F
文章代碼(AID): #1C4jY-eB (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1C4jY-eB (Soft_Job)