Javaで自然数の合計を計算する方法をわかりやすく解説【サンプルコード付き】
本記事では、Javaを使って自然数の合計を計算する方法を解説します。自然数とは、1から無限大までのすべての正の整数のことを指します。ここでは、指定した範囲内の自然数をすべて足し合わせるプログラムの作り方を、2つの異なるアプローチで紹介します。
処理内容の例
まず、入力と出力のイメージを確認しておきましょう。
入力
50 と 100
出力
50から100までの自然数の合計は3825です
アルゴリズム
このプログラムは以下の手順で動作します。
ステップ1: 処理を開始する ステップ2: 下限値(my_lower_limit)、上限値(my_upper_limit)、合計値(sum)の3つの整数変数を宣言する ステップ3: ユーザーに2つの整数値の入力を促す(または整数値を定義する) ステップ4: 値を読み込む ステップ5: forループを実行し、上限値に達するまで現在の数値を合計に加算していく。合計は変数に保存する ステップ6: 結果を表示する ステップ7: 処理を終了する
例1: ユーザー入力から合計を求める
この例では、Scannerクラスを使用してユーザーからの入力を受け付けます。開始番号と最大番号をキーボードから入力すると、その範囲内の自然数の合計が計算されて表示されます。
import java.util.Scanner;
public class NaturalNumbersSum {
public static void main(String[] args) {
int my_lower_limit , my_upper_limit, sum;
System.out.println("必要なパッケージがインポートされました");
Scanner scanner = new Scanner(System.in);
System.out.println("Scannerオブジェクトが定義されました");
System.out.print("開始番号を入力してください: ");
my_lower_limit = scanner.nextInt();
System.out.print("最大番号を入力してください: ");
my_upper_limit = scanner.nextInt();
sum = 0;
for(int i = my_lower_limit; i <= my_upper_limit; ++i){
sum += i;
}
System.out.println(my_lower_limit + "から" + my_upper_limit + "までの自然数の合計は" + sum + "です");
}
}実行結果
必要なパッケージがインポートされました Scannerオブジェクトが定義されました 開始番号を入力してください: 50 最大番号を入力してください: 100 50から100までの自然数の合計は3825です
例2: 固定値で合計を求める
この例では、整数値があらかじめコード内で定義されており、その値を使って合計を計算し、コンソールに表示します。動作確認や学習用のシンプルなケースです。
public class NaturalNumbersSum {
public static void main(String[] args) {
int my_input_1 , my_input_2, sum;
my_input_1 = 50;
my_input_2 = 100;
sum = 0;
System.out.println("最初と最後の数値は" + my_input_1 + "と" + my_input_2 + "に設定されています");
for(int i = my_input_1; i <= my_input_2; ++i){
sum += i;
}
System.out.println(my_input_1 + "から" + my_input_2 + "までの自然数の合計は" + sum + "です");
}
}実行結果
最初と最後の数値は50と100に設定されています 50から100までの自然数の合計は3825です
補足: 等差数列の公式を使った高速化
forループを使う方法以外にも、等差数列の和の公式「(初項 + 末項) × 項数 ÷ 2」を利用すれば、ループなしでO(1)の計算量で合計を求めることができます。
int lower = 50, upper = 100; long sum = (long)(lower + upper) * (upper - lower + 1) / 2; System.out.println(sum); // 3825
範囲が非常に大きい場合(例えば1から10億までなど)は、この公式を使うことで大幅に処理時間を短縮できます。用途に応じて、ループ方式と公式方式を使い分けるとよいでしょう。
-
【C言語入門】最初のn個の偶数の二乗和を求める2つの方法
「最初のn個の偶数の二乗和」とは、2、4、6、8…というように続く偶数をそれぞれ2乗し、それらをすべて足し合わせた合計値のことです。例えばn=3であれば、2² + 4² + 6² = 4 + 16 + 36 = 56 となります。この計算を行うプログラムには、大きく分けて2つの実装方法があります。それぞれの特徴とコード例を見ていきましょう。方法1:ループを使って計算する最も直感的な方法は、for文などのループを使って1からnまで順番に処理していくやり方です。各反復処理の中で偶数(2×i)を求め、その2乗を合計用の変数に加算していきます。サンプルコード#include <iostream&
-
C言語で最初のn個の自然数の立方和を求めるプログラム
この記事では、最初のn個の自然数(1からnまで)の立方和を求める方法について解説します。基本的なアプローチとしては、1からnまで繰り返すforループを1つ使い、各ステップでその項の立方を計算して合計に加算していきます。この方法の計算量はO(n)です。しかし、O(1)つまり定数時間でこの問題を解きたい場合は、以下の級数の公式を利用できます。1³ + 2³ + 3³ + … + n³ = {n(n+1)/2}²アルゴリズムcubeNNatural(n)begin sum := 0 for i in range 1 to n, do sum := sum + i^3