2021/05/20 公開
・指定した位の値を求める
各位(くらい)の値の説明はこちらの記事を参考にしてください。「各位(くらい)を求める」
与えられた整数値Xの任意の位の値は以下の式で計算できます。位は10のN乗(1、10、100、1000…)の値Pを与えます。
指定した位の値=(X/P)%10
(X/P)はXをPで割る計算です。結果を小数点以下は切り捨てた整数にします。
%10は、10で割ったときの余りを計算するものです。この計算によって1桁目の値を取得することができます。
例)X=12345でP=100の場合、
100の位の値=(12345/100)%10=(123)%10=3
例)X=12345でP=1000の場合、
100の位の値=(12345/1000)%10=(12)%10=2
例)X=554でP=1000の場合、
100の位の値=(554/1000)%10=(0)%10=0
以下は、上記の計算を行うJavaのソースコードです。整数値はキーボードで入力します。
Places2.java ← クリックしてダウンロードページに移動001: import java.util.Scanner; 002: 003: public class Places2 { 004: // 指定した位の値を求める 005: static int getNumber( int num, int place ) 006: { 007: // 位が1未満の場合-1を戻す(エラー) 008: if ( 1 > place ) return -1; 009: 010: // numの絶対値を計算 011: if ( 0 > num ) num = -num; 012: 013: // 結果を戻す 014: return ( num / place ) % 10; 015: } 016: 017: // メイン 018: public static void main( String[] args ) { 019: // 整数の値をキーボードから入力 020: Scanner scanner = new Scanner( System.in ); 021: System.out.print( "整数の値を入力してください:" ); 022: String line = scanner.next(); 023: 024: // 文字列を整数の値に変換 025: int num = Integer.parseInt( line ); 026: 027: // 各位を計算してコンソール出力 028: int place; 029: 030: // 1の位 031: place = 1; 032: System.out.println( place + "の位: " + getNumber( num, place ) ); 033: 034: // 10の位 035: place = 10; 036: System.out.println( place + "の位: " + getNumber( num, place ) ); 037: 038: // 100の位 039: place = 100; 040: System.out.println( place + "の位: " + getNumber( num, place ) ); 041: 042: // 1000の位 043: place = 1000; 044: System.out.println( place + "の位: " + getNumber( num, place ) ); 045: 046: // 10000の位 047: place = 10000; 048: System.out.println( place + "の位: " + getNumber( num, place ) ); 049: } 050: }
Places2実行
C:\talavax\javasample>java Places2
キーボードで整数値を入力して、各位(くらい)の値を求めます。
Places2.javaの出力結果
整数の値を入力してください: 56 1の位: 6 10の位: 5 100の位: 0 1000の位: 0 10000の位: 0
ここからは、このソースコードを上から順番に解説していきます。
001: import java.util.Scanner;
Javaのクラスライブラリの中から「java.util.Scanner」というパッケージにあるクラスを使うために記述しています。
003: public class Places2 {
クラス名を、Places2としています。
004: // 指定した位の値を求める 005: static int getNumber( int num, int place ) 006: {
指定した整数の値と位(くらい)を渡して、その位の値を戻すメソッドです。変数numには任意の整数、変数placeには10のN乗(N>0)の値を渡します。
007: // 位が1未満の場合-1を戻す(エラー) 008: if ( 1 > place ) return -1;
変数placeの値が1未満の場合にreturn文で-1を戻しています。これはエラーを意味しています。
このメソッドでは、変数のplaceの値が10のN乗であるかチェックを行っていません。placeの値が1以上であれば計算します。
010: // numの絶対値を計算 011: if ( 0 > num ) num = -num;
変数numの値がマイナスの場合、プラスの値になるようにしています。
013: // 結果を戻す 014: return ( num / place ) % 10;
指定した位の値=(X/P)%10の計算値を戻しています。正しく計算できた場合、0から9の値が戻ります。
017: // メイン 018: public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
019: // 整数の値をキーボードから入力 020: Scanner scanner = new Scanner( System.in );
標準入力System.inを使って、Scannerクラスのscanを初期化しています。
021: System.out.print( "整数の値を入力してください:" );
printメソッドで、"整数の値を入力してください:" をコンソール出力しています。printメソッドを使っているので、コンソール入力した文字はメッセージの右側に表示されます。printlnメソッドを使った場合、コンソール入力した文字はメッセージの下の行に表示されます。
022: String line = scanner.next();
nextメソッドで、キーボードから入力された1行を読み取り、String型のlineに代入しています。
ここで、入力待ち状態になり、Enterキーが押されるまでの入力文字がlineに格納されます。キーボードの"Ctrl"キーを押しながら"C"を押すと強制終了します。
024: // 文字列を整数の値に変換 025: int num = Integer.parseInt( line );
IntegerクラスのparseIntメソッドで、文字列lineを整数numに変換しています。
027: // 各位を計算してコンソール出力 028: int place;
ここからは、各位(くらい)を求める処理です。int型変数placeを宣言しています。
030: // 1の位 031: place = 1; 032: System.out.println( place + "の位: " + getNumber( num, place ) );
1の位の値をコンソール出力しています。
034: // 10の位 035: place = 10; 036: System.out.println( place + "の位: " + getNumber( num, place ) );
10の位の値をコンソール出力しています。
038: // 100の位 039: place = 100; 040: System.out.println( place + "の位: " + getNumber( num, place ) );
100の位の値をコンソール出力しています。
042: // 1000の位 043: place = 1000; 044: System.out.println( place + "の位: " + getNumber( num, place ) );
1000の位の値をコンソール出力しています。
046: // 10000の位 047: place = 10000; 048: System.out.println( place + "の位: " + getNumber( num, place ) );
1000の位の値をコンソール出力しています。
以上です。
■関連コンテンツ
キーボード入力 | ScannerクラスとSystem.inを使用 |
値のコンソール表示 | print()、println()とは? |
三項演算子 | 三項演算子について解説 |
10のN乗かを判定 | 1、10、100 … |
![]() |
剰余(余り)計算剰余(余り)をを計算するプログラムの紹介と、その結果を表示する方法を解説 |
![]() |
for文繰り返し処理に使用するfor文をJavaのソースコードを使って説明しています。 |
![]() |
if文条件による処理の分岐に使用するif文について解説 |
![]() |
計算結果の表示足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)の使い方を説明 |
■新着情報
2022.07.06 | 完全数 | 6=1+2+3 |
■広告
