精華區beta CSSE 關於我們 聯絡資訊
※ 引述《giive (lala)》之銘言: : 從 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的方式加速 : 有一股蛋蛋的憂傷 : 我的頭腦有一種被制約的感觸 題目是「從 10 加到 10000 的程式」當然得這樣寫。 如果是要答案的話,直接打 50004955 就得了,何必寫程式呢? 小學生也知道從 1 加到 10^n 就是 5 後面加 n-1 個 0 然後重複一次。 於是答案即是從 1 加到 10000 減去 1 加到 9, 而 1 加到 9 就是 1 加到 10 減去 10, 亦即 50005000 - (55 - 10), 用直觀法就能得到答案。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.222.173.29