Javaで数値を逆順にするプログラムの書き方【サンプルコード付き】
この記事では、Javaを使って整数を逆順(リバース)に出力する方法を詳しく解説します。数値の逆順は、whileループと算術演算子である剰余演算子「%」と除算演算子「/」を組み合わせることで求めることができます。
入出力の例
たとえば、次のような入力が与えられたとします。
入力する数値:123456
このとき、期待される出力結果は以下のとおりです。
実行結果:654321
アルゴリズム
ステップ1 - 処理を開始する ステップ2 - 整数型の変数 my_input(入力値)、reverse_input(逆順の結果)、my_remainder(余り)を宣言する ステップ3 - ユーザーから値を読み込む、または値を直接定義する ステップ4 - whileループを実行する ステップ5 - my_input を10で割った余りを my_remainder に代入する ステップ6 - reverse_input に10を掛け、my_remainder を加えた値を新しい reverse_input とする ステップ7 - my_input を10で割り、その商を新しい my_input とする ステップ8 - 結果を表示する ステップ9 - 処理を終了する
処理のポイント
このアルゴリズムの核となるのは、以下の2つの操作です。
- % 10(10で割った余り):数値の一番右端の桁(1の位)を取り出します。
- / 10(10で割った商):取り出した桁を取り除き、残りの桁を次の処理対象にします。
これらをループ内で繰り返し、「取り出した桁を逆順につなぎ合わせていく」ことで、元の数値の反転が完成します。
例1:ユーザーからの入力を受け取る場合
ここでは、Scannerクラスを使ってユーザーから入力を受け取る例を紹介します。オンラインのコーディング環境でも、このコードをそのまま試すことができます。
import java.util.Scanner;
public class ReverseNumber{
public static void main(String[] args){
int my_input, reverse_input, my_remainder;
reverse_input = 0;
System.out.println("必要なパッケージがインポートされました");
Scanner my_scanner = new Scanner(System.in);
System.out.println("リーダーオブジェクトが定義されました");
System.out.print("数値を入力してください:");
my_input = my_scanner.nextInt();
while(my_input != 0){
my_remainder = my_input % 10;
reverse_input = reverse_input * 10 + my_remainder;
my_input = my_input / 10;
}
System.out.println("入力された数値の逆順は:" + reverse_input);
}
}
出力
必要なパッケージがインポートされました リーダーオブジェクトが定義されました 数値を入力してください:123456 入力された数値の逆順は:654321
例2:値をあらかじめ定義しておく場合
こちらの例では、整数値をあらかじめプログラム内で定義し、その値をコンソールに表示します。
public class ReverseNumber{
public static void main(String[] args){
int my_input, reverse_input;
my_input = 123456;
reverse_input = 0;
System.out.println("定義された数値:" + my_input);
while(my_input != 0){
int remainder = my_input % 10;
reverse_input = reverse_input * 10 + remainder;
my_input = my_input / 10;
}
System.out.println("入力された数値の逆順は:" + reverse_input);
}
}
出力
定義された数値:123456 入力された数値の逆順は:654321
まとめ
Javaで数値を逆順にするには、「%」で末尾の桁を取り出し、「/」でその桁を削っていく処理を、数値が0になるまで繰り返すのが基本的な考え方です。ユーザー入力を受け付けるパターンと固定値を扱うパターンのどちらも、同じロジックで実装できることを2つのサンプルで確認しました。ぜひ実際にコードを動かして、挙動を確かめてみてください。
-
Javaで10進数を8進数に変換するプログラムの作成方法
この記事では、10進数(Decimal)を8進数(Octal)に変換するJavaプログラムの作成方法を解説します。10進数とは、整数部分と小数部分が小数点によって区切られている数値のことで、私たちが日常的に使っている記数法です。一方、8進数は基数が8であり、0から7までの8種類の数字を使用します。10進数から8進数への変換の仕組み10進数を8進数に変換するには、「8で割った余り」を順番に求め、商が0になるまで割り続ける方法が一般的です。求めた余りを逆順に並べると、それが8進数表現になります。例えば、10進数の「8」の場合、8で割ると商が1・余りが0、さらに1を8で割ると商が0・余りが1となるた
-
Javaで数の階乗を求めるプログラムの作成方法【初心者向け解説】
この記事では、Javaを使って数の階乗(かいじょう)を求める方法について詳しく解説します。階乗とは、ある数とそれ以下のすべての正の整数を掛け合わせた積のことです。 階乗は、0より大きい自然数に対して定義される関数です。階乗を表す記号は「!」(感嘆符)で、数値の後ろに付けて表します。例えば「5!」のように記述します。 それでは、実際の動作例を見てみましょう。 入力例 ユーザーが次の値を入力したとします。 Enter the number : 5 出力例 5の階乗は「5 × 4 × 3 × 2 × 1」で計算され、次のような結果が出力されます。 The factorial of 5 is 120