作者mayalu (小君)
看板Perl
標題[問題] 計算問題
時間Wed Sep 3 12:08:02 2008
題目是:從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
推 jlovet:while ($sum + $n <= 100) 09/03 18:07
推 salagadoola:while($sum<=100)會加到超過100才離開迴圈,就多算了1 09/05 06:08
→ salagadoola:先$sum+=$n再$n++而非先增加$n再加到$sum,又會多算1 09/05 06:09
→ salagadoola:所以才會跑出15而不是13 09/05 06:09