我需要帮助的人我一直在谷歌检查类似的问题,但我找不到最合适的答案。这是我的输出。
Enter 3 Elements
23
Is a palindrome
22
Is not a palindrome
11
Is not a palindrome
该计划:
public static void main(String [] args)
{
int number = 0;
int reverse =0;
int numCopy = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter how many numbers you want to enter");
int num = scan.nextInt();
System.out.println("Enter "+num +" Elements");
numCopy = num;
int[] array = new int[num];
for(int i = 0; i < num; i++)
{
array[i] = scan.nextInt();
int digit = numCopy % 10;
numCopy = numCopy / 10;
reverse = (reverse * 10) +digit;
if(num == reverse)
{
System.out.println("Is a palindrome");
}
else
{
System.out.println("Is not a palindrome");
}
}
}
答案 0 :(得分:1)
根据定义,Palindrome的前后相同,因此11
将是22
。23
将是function isPalin(string str)
if(str.length() == 0) {
return true;
}
int end = str.length() - 1;
int start = 0;
while(start < end) {
if(str[start++] != str[end--]) {
return false;
}
}
return true;
。 {{1}}不会等等。
快速简便的psudo代码,用于检查Palindrome是否为STRING:
{{1}}
如果您有数字只是将其转换为字符串,请使用该函数。
答案 1 :(得分:0)
回文,例如,我们需要考虑两种不同的情况: AA和ABA。 这两个都是回文。所以对于整数,你需要确认它的长度是偶数还是奇数。然后从两边检查:开始,结束。
这应该得到正确的结果。
答案 2 :(得分:-1)
你应该有你的程序如下:
public static void main(String[] args)
{
int number = 0;
int reverse =0;
int numCopy = 0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter how many numbers you want to enter");
int num = scan.nextInt();
System.out.println("Enter "+num +" Elements");
numCopy = num;
String[] array = new String[num];
for(int i = 0; i < num; i++)
{
array[i] = new Integer(scan.nextInt()).toString();
String rev="";
for(int k=array[i].length()-1;k>=0;k--){
rev +=array[i].charAt(k);
}
if(array[i].equals(rev))
{
System.out.println("Is a palindrome");
}
else
System.out.println("Is not a palindrome");
}
}