Palindrome with % and and [ java ]


数が文字列変換を使用してpalindromeされているかどうかを別の方法を使用できます.ここでは、モジュロ演算子と整数除算を使用してJavaでwhileループを持つアルゴリズムを探求したい.
それが左から右へ、そして、左から読むとき、それが同じであるならば、数はpalindromeです.例として:
  • 1331は、palindromeです;
  • 1234はそうではありません.
  • したがって、我々は逆の数を見つけて、それが元のものに等しいかどうかチェックする必要があります.
    whileループは、このシナリオに最適です.我々は元の数字を取るし、元の数字でそれを解体するつもりです.我々はこれらの逆numbnerを再構築するために使用します.
    解決に行く前に、最初に言及する必要のあるいくつかのプロパティがあります.
    モジュロ演算子は分割の剰余を返します.したがって、数% 10の場合、その数の最後の桁を持ちます.丸めは起こらない.
    1123 MOD 10 = 3
    1124 MOD 10 = 4
    
    これは、任意の整数の最後の桁をつかむために使用する主なツールです.
    整数除算は剰余を破棄します.だから10で割った任意の整数は、単に残りの数を提供し、最後の桁を削除します.
    このステップは、次の反復で、残りが正しいとなるように、異なる数を提供することが重要です.
    上記のすべての論理を含む解決策の下で
    
    public class Palindrome {
        public static void main(String[] args) {
    
            // hard-coding my numbers for ease of use
            int num = 1771;
            int temp = num;
    
            int reversedNumber = 0;
    
            while (temp > 0) {
    
                // MOD division to get the last digit
                int lastDigit = temp % 10;
    
                // reversed number built by adding the last digit 
                // to the previous last digit multiplied by 10. 
                // We are shifting the numbers.
                reversedNumber = reversedNumber * 10 + lastDigit;
    
                // integer division that will equal to 0 
                // if the number is < 10 and 
                // consequently stopping the while loop.
                temp = temp/10; 
            }
    
            if (num == reversedNumber) {
                System.out.println("It is a palindrome");
            } else {
                System.out.println("It is not a palindrome");
            }
        }
    }
    
    
    私はループ内の論理に魅了されますが、私はあなたがこのアプローチのことを知って教えてください.