【发布时间】:2015-03-03 05:32:29
【问题描述】:
目标: (回文整数)使用以下标题编写方法:
// 返回整数的反转,即reverse(456)返回654 public static int reverse(int number)
// 如果数字是回文则返回真 public static boolean isPalindrome(int number)
使用反向方法实现isPalindrome。数字是回文 如果它的反转与自身相同。编写一个测试程序,提示 用户输入一个整数并报告该整数是否为回文。
我的代码在下面...我的尝试在下面。我已经崩溃了,我不知道还能做什么,但来到这里。我被困在代码的布尔部分,不知道这段代码的其余部分是否正确。我浏览了互联网,看到的例子很少,但没有一个有任何意义。我是一个视觉学习者,所以这对我来说没有任何意义。 2 个月前开始使用 Java,所以请不要指望我以极其有限的知识生产黄金。我需要帮助,而不是琐碎或机智的 cmets。如果您不想提供帮助,请不要发表评论。
public class NewClass {
public static int reverse(int number) {
int remainder = 0;
while (number != 0) {
remainder = number % 10;
number = number / 10;
System.out.print(remainder);
}
System.out.println(" is the reverse number.");
return remainder;
}
//I don't really know what to do here.
public static boolean isPalindrome(int number, int remainder) {
return number == remainder;
}
//Nor do I know what I'm doing here. I'm supposed to make the result from 'reverse' either true or false but I don't know what it write, considering the 'Boolean' portion is unfinished.
public static void main(String[] args) {
System.out.print("Enter an integer: ");
java.util.Scanner input = new java.util.Scanner(System.in);
int number = input.nextInt();
reverse(number);
int remainder = 0;
if ( remainder == ture)
}
}
修订:
public class NewClass {
public static int reverse(int number) {
int reverse = 0;
while (number != 0) {
reverse = (reverse * 10) + number % 10;
number = number / 10;
System.out.print(reverse);
}
System.out.println(" is the reverse number.");
return (reverse);
}
public static boolean isPalindrome(int number) {
return (number == reverse(number)); //Still being asked to introduce this line. I don't know what that means. My book says nothing and the internets isn't helping.
}
public static void main(String[] args) {
System.out.print("Enter an integer: ");
java.util.Scanner input = new java.util.Scanner(System.in);
int number = input.nextInt();
reverse(number);
if (number == reverse(number)) {
System.out.println(number + " is a palindrome");
}
else{
System.out.println(number + " is not a palindrome");
}
}
}
**结果: 运行:
Enter an integer: 121
112121 is the reverse number.
112121 is the reverse number.
121 is a palindrome
BUILD SUCCESSFUL (total time: 2 seconds)**
我的问题:我不知道我在用这段代码的真假部分做什么。关键是检查数字,将其与反转的数字进行比较,检查它是否是回文。第二个问题是反向数字以双倍的数字重复......我不知道我做错了什么或如何解决它。
查询:
public static boolean isPalindrome(int number) {
return (number == reverse(number));
}
有人要求我介绍这条线,但我不知道它是什么意思。这是我唯一的错误。它应该返回真或假,对吗?我该怎么处理它,因为似乎我创建了一个不需要该特定行的代码,即使它是必需的。
【问题讨论】:
-
数字的最大大小是多少?有内存限制吗?
-
我不这么认为。上面的说明就是给出的全部内容。只要 '12321' 返回 true 或任何镜像。
-
克里斯,重新修订并复制输出,停止在
reverse中打印内容。 所有 它应该做的是返回反转的数字。如果要打印,请在main:System.out.println ("Reversing " + number + " gives " + reverse(number));中进行。至于真/假位,如果反转的数字与您打印“它是回文”的数字相同,否则您打印“不,它不是”。我不确定如何才能更清楚地说明这一点。 -
呃......我想我仍然无法理解这一点。我已经清除了重复的条目,但
return (number == reverse(number));仍有待补救。我仍然不明白“介绍”是什么意思,这是阻止我提交这个程序的唯一原因...... -
根据您在本网站上提出的其他问题,“引入”问题似乎是因为您通过将
number与reverse(number)进行比较,在main中复制了isPalindrome。因此,您永远不会真正调用该函数。在main中,您应该只有if (isPalindrome(number)) ...。