Java – 1から100までの和(合計値)を計算する方法をわかりやすく解説
1から100までの和を計算するには、ガウスの方法を使うと効率的です。
この方法では、数列の最初の数と最後の数を足し、その結果に数列の項数を掛けて2で割ります。
具体的には、1から100までの和は次の式で求められます:
\[\text{和} = \frac{n \times (n + 1)}{2}\]
ここで、\(n = 100\)なので、\(\text{和} = \frac{100 \times (100 + 1)}{2} = 5050\)。
Javaでは、forループを使って1から100までの数を順に足し合わせる方法もありますが、上記の数式を直接使う方が簡潔で高速です。
Javaで1から100までの和を計算する方法
Javaでは、1から100までの合計値を計算する方法はいくつかあります。
ここでは、代表的な方法をいくつか紹介します。
for文
for文を使って1から100までの和を計算する方法です。
シンプルで直感的な方法です。
public class App {
public static void main(String[] args) {
int sum = 0; // 合計値を格納する変数
// 1から100までの和を計算
for (int i = 1; i <= 100; i++) {
sum += i; // iを合計値に加算
}
// 結果を表示
System.out.println("1から100までの和: " + sum);
}
}
1から100までの和: 5050
while文
while文を使って同様の計算を行う方法です。
条件に基づいてループを続けるため、柔軟性があります。
public class App {
public static void main(String[] args) {
int sum = 0; // 合計値を格納する変数
int i = 1; // カウンタ変数
// 1から100までの和を計算
while (i <= 100) {
sum += i; // iを合計値に加算
i++; // カウンタをインクリメント
}
// 結果を表示
System.out.println("1から100までの和: " + sum);
}
}
1から100までの和: 5050
do-while文
do-while文を使った場合の例です。
少なくとも1回はループが実行される点が特徴です。
public class App {
public static void main(String[] args) {
int sum = 0; // 合計値を格納する変数
int i = 1; // カウンタ変数
// 1から100までの和を計算
do {
sum += i; // iを合計値に加算
i++; // カウンタをインクリメント
} while (i <= 100);
// 結果を表示
System.out.println("1から100までの和: " + sum);
}
}
1から100までの和: 5050
Stream API
Java 8以降で利用可能なStream APIを使った方法です。
より宣言的なスタイルで記述できます。
import java.util.stream.IntStream;
public class App {
public static void main(String[] args) {
// 1から100までの和を計算
int sum = IntStream.rangeClosed(1, 100) // 1から100までの範囲を生成
.sum(); // 合計を計算
// 結果を表示
System.out.println("1から100までの和: " + sum);
}
}
1から100までの和: 5050
ガウスの式
数学的なアプローチとして、ガウスの式を使った方法です。
1からnまでの和は、\(\frac{n(n + 1)}{2}\)で計算できます。
public class App {
public static void main(String[] args) {
int n = 100; // 上限値
// ガウスの式を使って合計を計算
int sum = n * (n + 1) / 2;
// 結果を表示
System.out.println("1から100までの和: " + sum);
}
}
1から100までの和: 5050
reduceメソッド
Stream APIのreduceメソッドを使った方法です。
合計を計算するための強力な手法です。
import java.util.stream.IntStream;
public class App {
public static void main(String[] args) {
// 1から100までの和を計算
int sum = IntStream.rangeClosed(1, 100) // 1から100までの範囲を生成
.reduce(0, Integer::sum); // 合計を計算
// 結果を表示
System.out.println("1から100までの和: " + sum);
}
}
1から100までの和: 5050
まとめ
この記事では、Javaを使って1から100までの和を計算するさまざまな方法を紹介しました。
for文、while文、do-while文、Stream API、ガウスの式、reduceメソッドといった手法を通じて、異なるアプローチの特徴や利点を理解することができました。
これらの方法を活用して、他の数値範囲や異なる計算にも挑戦してみると良いでしょう。