如何在Java中找到一个数字的回文?

时间:2017-07-07 13:38:04

标签: java

我尝试过以下代码,但不起作用。请查看错误在哪里。

import java.util.Scanner;//take input from the user

public class Reverse {

    private double ab;
    public boolean check;

    public static void main(String args[]) {
        Scanner inp = new Scanner(System.in);
        System.out.println("Enter s number");
        int num = 0;
        int rnum = 0;
        int pal;
        for (num = inp.nextInt(), pal = num; num != 0; num = num % 10) {
            rnum = rnum * rnum / 10;
        }
        if (rnum ! pal) {
            System.out.println("Palindrome");
        } else {
            System.out.println("Not palindrome");
        }
        public

    static void dosomething() {
        System.out.println("Thanks for calling");
    }
}

}

2 个答案:

答案 0 :(得分:1)

我看到一些小错误,例如最后的流浪“public”关键字。这些可能很容易通过你正在使用的IDE调试。

此外,据我所知,你的数字是否为1,for循环将使用余数运算符,它将保持为1.我不完全确定循环如何检查数字是否为回文但这是我的建议:

  1. 构建一个while循环,通过除以十来保存截断的数字(最后一位数字)并使用这个简单的快捷方式保存第一个数字:

    int firstDigit = Integer.parseInt(Integer.toString(number).substring(0, 1));
    
  2. 每个循环应该比较两个数字并查看它们是否相等,如果不是,则while循环应该终止并发送消息,如果是,那么它应该提交不同的消息。

  3. 此外,您可以将int转换为字符串并以这种方式对其进行操作,因为它会更容易,但如果您正在处理需要数学运算的赋值,那么我将让您了解详细信息。

答案 1 :(得分:0)

您的代码段中有许多不必要的代码。为了简洁明了,只需循环浏览number,然后针对每个循环,删除最后的数字并将其放在新的int上,比如说reverseNumber。例如,

import java.util.Scanner;
public class Reverse {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int number = 0;
    int reverseNumber = 0;
    System.out.println("Enter a number");
    number = input.nextInt();
    System.out.print("Your number ("+number+") in reverse is: ");
    while (number != 0) {
      //Shave off one number here and attach it to reverseNumber
      reverseNumber = (reverseNumber * 10) + (number % 10);
      number = number / 10;
    }
    System.out.print(reverseNumber);
  }
}

此代码允许您输入任何(正)整数并接收其回文。