2020.03.23
剰余(余り)
はじめに
剰余(余り)とは、割り算で割り切れずに残った数のことです。
例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ソースコード その1
以下は、'%'を使ったJavaのソースです。
Surplus1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024
public class Surplus1 { public static void main( String[] args ) { // 変数の定義 int a, b, ans; // 100を9で割った余り a = 100; b = 9; ans = a % b; System.out.println( a + "を" + b + "で割った余り : " + ans ); // 50を-4で割った余り a = 50; b = -4; ans = a % b; System.out.println( a + "を" + b + "で割った余り : " + ans ); // -20を-3で割った余り a = -20; b = -3; ans = a % b; System.out.println( a + "を" + b + "で割った余り : " + ans ); } }
実行結果
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis Surplus1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac Surplus1.java
Surplus1を実行
C:\talavax\javasample>java Surplus1
出力結果
100を9で割った余り : 1 50を-4で割った余り : 2 -20を-3で割った余り : -2
aとbをいろいろな値に変更して試してみてください。
1から10までの数字が、コンソール出力されます。
Javaソースコード その2
Surplus2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016
public class Surplus2 { public static void main( String[] args ) { // 変数の定義 int i, ans; for ( i = 0; i < 100; ++ i ) { // iを10で割った余り ans = i % 10; System.out.print( ans ); // ans=9の時に改行 if ( 9 == ans ) System.out.println(); } } }
実行結果
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis Surplus2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac Surplus2.java
Surplus2を実行
C:\talavax\javasample>java Surplus2
出力結果
0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789 0123456789
'0123456789'が10行表示されます。
Javaソースコード その3
Surplus3.java
001 002 003 004 005 006 007 008 009 010 011 012
public class Surplus3 { public static void main( String[] args ) { // 変数の定義 double a, b, ans; // 173.2を20.0で割った余り a = 173.2; b = 20.0; ans = a % b; System.out.println( a + "を" + b + "で割った余り : " + ans ); } }
実行結果
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis Surplus3.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac Surplus3.java
Surplus3を実行
C:\talavax\javasample>java Surplus3
出力結果
173.2を20.0で割った余り : 13.199999999999989
以上です。
関連コンテンツ
割り算で「割り切れる」、「割り切れない」ってどういうこと?