目的: (Palindrome整数)使用以下标题编写方法:
//返回整数的反转,即反转(456)返回654 public static int reverse(int number)
//如果number是回文,则返回true public static boolean isPalindrome(int number)
使用反向方法实现isPalindrome。一个数字是回文 如果它的逆转与自身相同。写一个提示的测试程序 user输入一个整数并报告整数是否为回文。
我的代码如下......我的尝试如下。我崩溃了,我不知道还能做什么但是来到这里。我被困在代码的布尔部分,不知道这段代码的其余部分是否正确。我已经浏览了互联网并看到了很少的例子,但没有一个是有道理的。我是一个视觉学习者,所以这些对我来说都没有意义。 2个月前开始使用Java所以请不要指望我用非常有限的知识生产黄金。我需要帮助,而不是小气或诙谐的评论。如果您不想提供帮助,请不要发表评论。
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));
}
我被要求介绍这条线,但我不知道这意味着什么。这是我唯一的错误。它应该返回真或假,正确吗?我该怎么办呢,因为我似乎创建了一个不需要特定行的代码,即使它是必需的。
答案 0 :(得分:3)
如果您正在谈论如何在isPalindrome
方面实施reverse
,那么只需确定数字及其反向是否相同。
因此,例如,767
是一个回文,因为当反转时,它等于原始。但是,314159
不是回文,因为它的反转是一个完全不同的数字,951413
。
这意味着像这样的伪代码就足够了(我已经包含了reverse
,因为你当前的实现虽然接近,却返回最后的余数而不是反转的数字):
def reverse(num):
rnum = 0
while num != 0:
rnum = (rnum * 10) + (num % 10)
num = num / 10
return rnum
def isPalindrome(num):
return (num == reverse(num))
如果你想自己坚持下去,不要看下面。这就是我如何处理这种技能水平的方法,而我只是为了完整而提供它。
public class Test {
public static int reverse (int num) {
int rnum = 0;
while (num > 0) {
rnum = (rnum * 10) + (num % 10);
num = num / 10;
}
return rnum;
}
public static boolean isPalindrome (int num) {
return (num == reverse (num));
}
public static void main(String args[])
{
System.out.println(isPalindrome (767));
System.out.println(isPalindrome (12321));
System.out.println(isPalindrome (4));
System.out.println(isPalindrome (314159));
}
}
答案 1 :(得分:0)
我个人使用我的两种方法来做,但是做StringBuilder的人也做得很好:)。 这是我的逆转代码然后我打电话给它并检查它是否是回文。
public static String reverseString(String str)
{
String blank = "";
for(int i = str.length()-1; i >= 0; i--)
{
blank = blank + str.charAt(i);
}
return blank;
}
// NOW you can call isPalindrome("Whatever string you wanna check.");
public static boolean isPalindrome(String str)
{
String reverse = reverseString(str);
if(str.equalsIgnoreCase(reverse))
{
return true;
}
else
{
return false;
}
}
答案 2 :(得分:0)
这是一个单行,我认为这是最短的:
int i; // given
if ((i + "").equals(new StringBuilder(i + "").reverse() + ""))
// it's a palindrome
答案 3 :(得分:0)
以下是检查给定数字是否为回文的示例。
public static void main(String [] args) {
System.out.println("Please Enter a number : ");
int palindrome = new Scanner(System.in).nextInt();
if(isPalindrome(palindrome)){
System.out.println("Number : " + palindrome + " is a palindrome");
}else{
System.out.println("Number : " + palindrome + " is not a palindrome");
}
}
/*
* Java method to check if number is palindrome or not
*/
public static boolean isPalindrome(int number) {
int palindrome = number; // copied number into variable
int reverse = 0;
while (palindrome != 0) {
int remainder = palindrome % 10;
reverse = reverse * 10 + remainder;
palindrome = palindrome / 10;
}
// if original and reverse of number is equal means
// number is palindrome in Java
if (number == reverse) {
return true;
}
return false;
}
}