精華區beta CSSE 關於我們 聯絡資訊
從 10 加到 10000 的程式要怎麼寫 10000個programer應該有9990個會用for或是類似的迴圈寫 int result=0; for(int a = 10 ; a <=10000 ; a++){ result += a; } 一定只能這樣寫嗎?? int a =10 , b=10000 , result = 0; result = (a+b)*(b-a+1)/2 ; -------> 小學的梯形運算 用for是得跑 9990次的加法運算 用梯形運算只需要 三次加法(減也算加) 一次整數乘 一次整數除 因為是除以2 , 應該還可以用shift的方式加速 有一股蛋蛋的憂傷 我的頭腦有一種被制約的感觸 -- 不過如果上天肯在給我一次機會 我大概還是會用for去寫吧 因為連乘跟連除都可以用:p -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.207.170 ※ 編輯: giive 來自: 140.112.207.170 (05/27 09:33)
Eventis:直覺的做法也未必就是不好啊:) 61.62.49.43 05/27
Eventis:如果不是效能瓶頸,只用這麼一次 61.62.49.43 05/27
Eventis:這麼緇珠必較又是何苦咧XD 61.62.49.43 05/27
giive:不是這個意思 , 只是驚覺我的頭腦已經想不出for以ꔠ140.112.207.170 05/27
giive:外的作法 , 感覺有種被制約的感覺140.112.207.170 05/27
KoalaLee:真的有那麼多人會這樣寫嘛 140.129.22.232 05/27
Eventis:可能這個問題不那麼直接,不妨試試更常見的問題. 61.62.49.43 05/27
Eventis:要將一個多維陣列有規律地填入特殊的值的作法:) 61.62.49.43 05/27
Eventis:"一定要怎麼樣"跟"一定不要怎麼樣" 61.62.49.43 05/27
Eventis:我不認為這兩種態度是不同的事:) 61.62.49.43 05/27
kevin190:看到你的程式,讓我聯想到ILP跟SIMD指令集加速 218.171.136.77 05/29