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