ゆるゆるプログラミング

・剰余(余り)計算

剰余(余り)とは、割り算で割り切れずに残った数のことです。

 例1)10÷3の場合、3 余り 1です。(10 = 3 x 3 + 1)

 例2)8÷5の場合、1 余り 3です。(8 = 5 x 1 + 3)

 例3)13÷20の場合、0 余り 13です。(13 = 20 x 0 + 13)

 例4)-10÷4の場合、-2 余りは-2です。(-10 = 4 x (-2) - 2 )

 例5)-10÷(-4)の場合、2 余り -2です。(-10 = -4 x 2 - 2 )

まず、割り算した結果(整数)と割る数を掛けた値を、割られる数から引いた値が余りです。

例2)の割り算した結果は1で、これを割る数5と掛けると5、これを割られる数8から引くと8-5=3(余り)となります

例4)の割り算した結果は-2で、これを割る数4と掛けると-8、これを割られる数-10から引くと-10-(-8)=-2(余り)となります

Javaでは演算子'%'を使って求めることができます。

演算 演算子
剰余 %(半角)

以下は、'%'を使ったJavaのソースです。

Surplus1.java
001:    public class Surplus1 {
002:    	public static void main( String[] args ) {
003:    		// 変数の定義
004:    		int   a, b, ans;
005:    
006:    		// 100を9で割った余り
007:    		a = 100;
008:    		b = 9;
009:    		ans = a % b;
010:    		System.out.println( a + "を" + b + "で割った余り : " + ans );
011:    
012:    		// 50を-4で割った余り
013:    		a = 50;
014:    		b = -4;
015:    		ans = a % b;
016:    		System.out.println( a + "を" + b + "で割った余り : " + ans );
017:    
018:    		// -20を-3で割った余り
019:    		a = -20;
020:    		b = -3;
021:    		ans = a % b;
022:    		System.out.println( a + "を" + b + "で割った余り : " + ans );
023:    	}
024:    }

Surplus1.javaの出力結果

100を9で割った余り : 1
50を-4で割った余り : 2
-20を-3で割った余り : -2

aとbをいろいろな値に変更して試してみてください。

以下のソースは、for文で0~99の値のループを作り、その値を10で割った余りを表示するものです。余りが9のとき、表示を改行するようにしています。

Surplus2.java
001:    public class Surplus2 {
002:    	public static void main( String[] args ) {
003:    		// 変数の定義
004:    		int   i, ans;
005:    
006:    		for ( i = 0; i < 100; ++ i ) {
007:    			// iを10で割った余り
008:    			ans = i % 10;
009:    			System.out.print( ans );
010:    
011:    			// ans=9の時に改行
012:    			if ( 9 == ans )
013:    				System.out.println();
014:    		}
015:    	}
016:    }

Surplus2.javaの出力結果

0123456789
0123456789
0123456789
0123456789
0123456789
0123456789
0123456789
0123456789
0123456789
0123456789

'0123456789'が10行表示されます。

以下は、'%'を使ってdouble型剰余を計算するソースです。C言語では'%'は整数余り計算にだけ使用できますが、Javaの場合、実数にも'%'が使用できます。

Surplus3.java
001:    public class Surplus3 {
002:    	public static void main( String[] args ) {
003:    		// 変数の定義
004:    		double a, b, ans;
005:    
006:    		// 173.2を20.0で割った余り
007:    		a = 173.2;
008:    		b = 20.0;
009:    		ans = a % b;
010:    		System.out.println( a + "を" + b + "で割った余り : " + ans );
011:    	}
012:    }

Surplus3.javaの出力結果

173.2を20.0で割った余り : 13.199999999999989

■関連コンテンツ

計算結果の表示 四則演算で計算した結果を表示するプログラムについて解説
割り算(除算)について 割り算(除算)の注意点など
整数の割り算(除算)について 整数の割り算(除算)

■新着情報

2019.04.30 放射状模様 放射状模様の画像作成方法を紹介
2019.04.05 ストップウォッチ その1 単純なストップウォッチクラスの作り方を解説
2019.04.05 ストップウォッチ その2 ストップウォッチクラスの作り方を解説
2019.04.04 エッジ(境界)検出 カラー画像をN値化する方法について解説

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

Topへ