推 littlethe: 第10點意思是耍小聰明啦,而不用正規的方式去做 03/06 14:36
→ littlethe: 不過第10點是蠻主觀的就是了,重點還是有沒有和同事講好 03/06 14:38
→ dreamnook: 10就是用特規方法讓你只能處理1個case 03/06 14:45
→ dreamnook: 像是輸出1加到100結果直接寫(1+100)/2 03/06 14:46
→ dreamnook: 結果要1加到200後就炸了 03/06 14:47
→ dreamnook: ....至少我遇過這種人= = 03/06 14:47
→ robler: 為什麼1加到100可以寫成(1+100)/2 ? 03/06 14:49
→ robler: 如果用公式 (1+n)*n/2 換成200也不會爆阿 03/06 14:51
→ dreamnook: XDDDD 我打太快忘了補*100進去 03/06 14:51
推 a47135: 如果是練習題應該會規定你只能用迴圈去做XDD 03/06 14:52
推 littlethe: 回樓上,你們那樣都還好,信不信有人寫1加到100,會直接 03/06 14:54
推 tw0517tw: while(true){print((1+100)*100/2);break;} 03/06 14:54
推 a47135: XDD 真是八仙過海各顯神通啊 03/06 14:55
推 littlethe: 打printf("5050");連公式和程式都不寫的 03/06 14:56
→ robler: t版友那招不錯 有用到迴圈 03/06 14:56
→ dreamnook: 我有看過寫類似1+2+3+4.....+100的 03/06 14:57
→ dreamnook: 我不反對啦 那你乾脆直接return 5050還比較快... 03/06 14:58
→ xtxml: (1+100)/2 這寫法在很多語言會被捨位喔,請小心wwwww 03/06 15:00
→ xtxml: 很多白癡的bug都是這種數學上看起來沒錯的算是造成的XDDD 03/06 15:00
推 littlethe: if(n==100){printf("5050");}//哼,我還用到if呢 03/06 15:02
→ littlethe: else if(n==99){printf("4950");} 03/06 15:04
→ dreamnook: 賣一下以前同學 03/06 15:04
→ dreamnook: 他有寫過 for (int i=0; i<100; i+1) 03/06 15:05
→ dreamnook: 有些時候真的是人腦邏輯一下沒轉成程式邏輯的關係 03/06 15:06
→ littlethe: else if(n==98){printf("4851");}//以此類推... 03/06 15:06
推 tw0517tw: while(n>0){print((1+n)*n/2);break;}有迴圈 可以改值 03/06 15:11
→ tw0517tw: O(1) 03/06 15:11
→ yueayase: 那 int sum[] = {1,3,6,...., 5050} 03/06 15:15
→ yueayase: printf("%d", sum[sizeof(sum)/sizeof(int)-1]); 呢? 03/06 15:16
以上根本是初學者還不熟程式,會出現的狀況吧...
※ 編輯: yueayase (61.227.230.31), 03/06/2015 15:17:33
推 littlethe: 老闆:請我們小姐算給對方看就好了,幹麼浪費成本寫程式? 03/06 15:17
→ yueayase: 不過while(true){print((1+100)*100/2);break;}不是 03/06 15:18
→ yueayase: 這真的在賣弄... 03/06 15:18
→ rofellosx: if(n==1){return 1;} else{return sum(n-1)+n;} 03/06 15:20
→ yueayase: 你這還好吧... 03/06 15:22
→ dreamnook: 不要小看業界(爆炸) 雖然說修正快的人也不少就是 03/06 15:22
→ cha122977: 連recursive都拿出來了勒XD 03/06 19:48
→ yueayase: recursive我記得不能亂用耶,這個還好,Fibonacci就不適 03/06 21:28
→ yueayase: 合,因為會重複計算中間數值,這時用迴圈比較好 03/06 21:29
→ yueayase: 又不難寫 03/06 21:29