[問題] 計算問題

看板Perl作者 (小君)時間17年前 (2008/09/03 12:08), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/3 (看更多)
題目是:從1加到n,那麼在累加結果不超過100,n的最大值應該是多少? 以下是程式碼: use strict; my ($sum, $n); while ($sum <= 100) { $sum+=$n; $n++; } print $n; 看起來覺得是對的, 可是答案錯了 應該是13, 可是算出來是15, 可以請教要如何更改嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.151.5

09/03 18:07, , 1F
while ($sum + $n <= 100)
09/03 18:07, 1F

09/05 06:08, , 2F
while($sum<=100)會加到超過100才離開迴圈,就多算了1
09/05 06:08, 2F

09/05 06:09, , 3F
先$sum+=$n再$n++而非先增加$n再加到$sum,又會多算1
09/05 06:09, 3F

09/05 06:09, , 4F
所以才會跑出15而不是13
09/05 06:09, 4F
文章代碼(AID): #18lWsZPr (Perl)
討論串 (同標題文章)
文章代碼(AID): #18lWsZPr (Perl)