看板 Soft_Job 關於我們 聯絡資訊
一定用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
loveflames:果然不能比三次更低了 06/12 14:26