Skip to content

Latest commit

 

History

History
98 lines (70 loc) · 2.99 KB

File metadata and controls

98 lines (70 loc) · 2.99 KB

Java 程序:检查数字是否为回文

原文: https://www.programiz.com/java-programming/examples/palindrome-number

在此程序中,您将学习如何用 Java 检查数字是否为回文。 这是通过使用forwhile循环来完成的。

示例 1:使用while循环检查回文的程序

public class Palindrome {

    public static void main(String[] args) {

        int num = 121, reversedInteger = 0, remainder, originalInteger;

        originalInteger = num;

        // reversed integer is stored in variable 
        while( num != 0 )
        {
            remainder = num % 10;
            reversedInteger = reversedInteger * 10 + remainder;
            num  /= 10;
        }

        // palindrome if orignalInteger and reversedInteger are equal
        if (originalInteger == reversedInteger)
            System.out.println(originalInteger + " is a palindrome.");
        else
            System.out.println(originalInteger + " is not a palindrome.");
    }
}

运行该程序时,输出为:

121 is a palindrome number.

在这个程序中

  • 首先,给定数字(num)的值存储在另一个整数变量originalInteger中。 这是因为,我们需要在最后比较反向编号和原始编号的值。
  • 然后,使用while循环循环遍历num,直到等于 0。
    • 在每次迭代中,number的最后一位存储在remainder中。
    • 然后,将remainder添加到reversedInteger,以便将其添加到下一个位置值(乘以 10)。
    • 然后,除以 10 后,从num中删除最后一位数字。
  • 最后,比较reversedIntegeroriginalInteger。 如果相等,则为回文数。 如果不是,则不是。

以下是执行的步骤:

回文执行步骤

num num != 0 remainder reversedInteger
121 true 1 0 * 10 + 1 = 1
12 true 2 1 * 10 + 2 = 12
1 true 1 12 * 10 + 1 = 121
0 false - 121

示例 2:使用for循环检查回文的程序

public class Palindrome {

    public static void main(String[] args) {

        int num = 11221, reversedInteger = 0, remainder, originalInteger;

        originalInteger = num;

        // reversed integer is stored in variable
        for( ;num != 0; num /= 10 )
        {
            remainder = num % 10;
            reversedInteger = reversedInteger * 10 + remainder;
        }

        // palindrome if orignalInteger and reversedInteger are equal
        if (originalInteger == reversedInteger)
            System.out.println(originalInteger + " is a palindrome.");
        else
            System.out.println(originalInteger + " is not a palindrome.");
    }
}

运行该程序时,输出为:

11221 is not a palindrome.

在上面的程序中,使用for循环代替while循环。

在每次迭代中,都会执行num /= 10并检查条件num !=0