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

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

プログラミング、ITに関する用語をまとめています。

2022.10.17

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

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

2020.03.23

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

2021.07.03

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

2020.03.23

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

2022.08.03

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

2022.08.29

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

広告