1から100までの整数を全て足すと合計はいくつになるでしょうか?
(1) 5050
(2) 5550
(3) 5055
このページの内容
1から100までの和は?
答え:(1) 5050
1から100までの和を求めるとき、
1+2+3+…+98+99+100
を逆にした
100+99+98+…+3+2+1
も足してみます。
上+下は
(1+100)+(2+99)+(3+98)+…+(98+3)+(99+2)+(100+1)
となり、
101を100個足すので 101×100=10100 になります。
これは1から100までの和の2回分なので2で割って
10100÷2=5050 になります。
1から100までの和は5050 です。
1から50までの和は?
1から50までの和を求める場合も同じ考え方です。
1+2+3+…+48+49+50
を逆にした
50+49+48+…+3+2+1
も足してみます。
上+下は
(1+50)+(2+49)+(3+48)+…+(48+3)+(49+2)+(50+1)
となり、
51を50個足すので 51×50=2550 になります。
これは1から50までの和の2回分なので2で割って
2550÷2=1275 になります。
1から100までの和を求めるプログラム
for文を使う例
プログラムを使って1から100までの和を求めるコードの例は次のようになります。プログラミング言語はPHPです。
<?php
$to = 100;
$cnt = 0;
for ($i = 1; $i <= $to; $i++) {
$cnt += $i;
}
echo "1から{$to}までの和は{$cnt}です。";
?>
仕組みはPHP以外のプログラミング言語でも同じです。反復処理する構文の「for」によりカウンタ変数$iが1から100まで増えていきます。その1から100を$cntという変数に加算して、最後に$cntの合計を表示しています。
1から100までの和は5050です。
配列関数を使う例
ただし、PHPなら配列関数のrangeとarray_sumを使って次のように簡単に書くこともできます。
<?php
$to = 100;
$num = range(1, $to);
echo "1から{$to}までの和は" . array_sum($num) . "です。";
?>
range開発を使って1から100までの要素を持つ配列$numを作成し、その配列内の要素(1から100)をarray_sum関数で合計しています。
1から100までの和は5050です。
簡単に計算する方法を使う例
この記事で紹介した1から100までの和を簡単に求める式を使うと次のようになります。
<?php
$to = 100;
$wa = ($to + 1) * $to / 2;
echo "1から{$to}までの和は{$wa}です。";
?>
1から100までの和は5050です。