2020.10.28

数学

1からNの和

1からNの全ての自然数の和を計算するプログラムの作り方を説明します。

N=2の和は、1+2=3
N=3の和は、1+2+3=6 
N=4の和は、1+2+3+4=10 

N=10の和は、1+2+3+4+5+6+7+8+9+10=55 

ここでは、1から順番に値を足していく方法と、自然数和の公式を使う方法の2つを紹介します。

1から順番にnまで足していく方法

for文を使って1からnの値を足していきます。以下はソースコードの例です。

	int n = 10;
	int sum = 0;

	for ( int i = 1; i <= n; ++ i )
		sum = sum + i;

for文を終了したときの変数sumの値が和です。

以下は、for文を使って和を計算するJavaソースコードです。変数nの値を変えて結果を確認してみてください。

Sum01.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
public class Sum01 {
	public static void main( String[] args ) {
		// 足す値の最大値nの値を格納する変数
		int n = 10;

		// 1からnを足した値を計算
		int sum = 0;
		for ( int i = 1; i <= n; ++ i )
			sum = sum + i;

		// 結果を表示
		System.out.println( "1~" + n + "の和 : " + sum );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis Sum01.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac Sum01.java

実行

C:\talavax\javasample>java Sum01

出力結果

1~10の和 : 55

1から10の和が正しく出力されています。(1+2+3+4+5+6+7+8+9+10=55)

自然数の和の公式を使う方法

1からnの和は、n(n+1)/2という式で計算できます。これが和の公式です。

この式を利用すれば、1回の計算で和を求めることができます。nの値が大きすぎると計算結果がint型に収まらないことがあります。

計算するnの値が大きい場合は、long型変数で計算してください。

公式について詳しく知りたい方は、以下の記事を参考にしてください。

1+2+3+ … +Nを計算する公式と、その導き方を掲載しています。

2021.07.03

1+2+3+ … +Nを計算する公式と、その導き方を掲載しています。面積を使って公式を導いています。

2021.07.07

以下は、和の公式を使って和を計算するJavaソースコードです。

変数nの値を変えて結果を確認してみてください。nの値に1未満を指定した場合、和を0にしています。

Sum02.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
public class Sum02 {
	public static void main( String[] args ) {
		// 足す値の最大値nの値を格納する変数
		int n = 10;
		
		// 合計値を格納する変数
		int sum;

		// 和の公式で、1からnを足した値を計算
		if ( 1 > n )
			sum = 0;
		else
			sum = n * ( n + 1 ) / 2;

		// 結果を表示
		System.out.println( "1~" + n + "の和 : " + sum );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis Sum02.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac Sum02.java

実行

C:\talavax\javasample>java Sum02

出力結果

1~10の和 : 55

for文で計算した結果同様、1から10の和が正しく出力されています。

以上です。

関連コンテンツ

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

基本的な計算である足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)を行うプログラム作成。

2020.03.23

整数型の変数に1を足すインクリメント、1つ引くデクリメントについて詳しく説明しています。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

条件式を判断して処理を分岐する方法を詳しく説明しています。

2023.03.20

自然数と整数って何が違う?

2020.03.23

1+2+3+ … +Nを計算する公式と、その導き方を掲載しています。

2021.07.03

処理を繰り返すために使用するfor文について解説しています。

2020.03.23

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

for文で変数名iがよく使われる理由について説明しています。興味のある方は是非。

2022.08.29

広告