while &for ループを使用した Java の回文数プログラム
回文数とは
回文数 反転しても同じ数字のままの数字です。たとえば、131 です。桁を逆にしても、同じ番号のままです。回文数は縦軸に鏡映対称性があります。文字を逆にすると綴りが同じ単語を指します。
Java の回文数の例
121, 393, 34043, 111, 555, 48084
回文数の例
LOL, MADAM
回文数アルゴリズム
以下は、Java の回文数アルゴリズム ロジックです。
- 回文であることを確認する必要がある入力番号を取得します
- number を一時変数にコピーして逆順にします。
- 逆数と元の数を比較してください。
- 同じなら数は「回文数」
- Else 数は「回文数」ではありません
入力数値が回文かどうかの確認方法
以下は while ループを使った Java の回文プログラムです
package com.guru99; public class PalindromeNum { public static void main(String[] args) { int lastDigit,sum=0,a; int inputNumber=171; //It is the number to be checked for palindrome a=inputNumber; // Code to reverse a number while(a>0) { System.out.println("Input Number "+a); lastDigit=a%10; //getting remainder System.out.println("Last Digit "+lastDigit); System.out.println("Digit "+lastDigit+ " was added to sum "+(sum*10)); sum=(sum*10)+lastDigit; a=a/10; } // if given number equal to sum than number is palindrome otherwise not palindrome if(sum==inputNumber) System.out.println("Number is palindrome "); else System.out.println("Number is not palindrome"); } }
コード出力:
Input Number 171 Last Digit 1 Digit 1 was added to sum 0 Input Number 17 Last Digit 7 Digit 7 was added to sum 10 Input Number 1 Last Digit 1 Digit 1 was added to sum 170 Number is palindrome
for ループを使用して回文をチェックするプログラム
以下はforループを使った回文のJavaプログラムです
package com.guru99; public class PalindromeNum { public static void main(String[] args) { int lastDigit,sum=0,a; int inputNumber=185; //It is the number to be checked for palindrome a=inputNumber; // Code to reverse a number for( ;a != 0; a /= 10 ) { System.out.println("Input Number "+a); lastDigit=a%10; //getting remainder System.out.println("Last Digit "+lastDigit); System.out.println("Digit "+lastDigit+ " was added to sum "+(sum*10)); sum=(sum*10)+lastDigit; a=a/10; } // if given number equal to sum than number is palindrome otherwise not palindrome if(sum==inputNumber) System.out.println("Number is palindrome "); else System.out.println("Number is not palindrome"); } }
コード出力:
Input Number 185 Last Digit 5 Digit 5 was added to sum 0 Input Number 1 Last Digit 1 Digit 1 was added to sum 50 Number is not palindrome
Java