在不转换为字符串的情况下检查 int 是否为回文?
Checking whether an int is palindrome or not without converting into a string?
public class Palindrome {
public static void main(String args[]) {
int x = 121;
int res = 0;
while (x > 0) {
res = res * 10 + (x % 10);
x /= 10;
}
if (x - res == 0) {
System.out.println("True" + res);
} else
System.out.println("False" + res);
}
}
您好!这段代码是在不将 int
转换为 String
的情况下检查整数是否为回文。出于某种原因,计算机认为 res
与 x
不同,尽管两者都代表数字 121
。感谢您的帮助并提前致谢!
你很接近。这是一个基于您所做的解决方案:
static bool isPalindrome (int n1, int n2) {
return getReverseInteger(n1) == n2;
}
static int getReverseInteger (int n) {
int nReversed = 0;
while (n > 0) {
int digit = n % 10;
nReversed = nReversed * 10 + digit;
n = (n - digit) / 10;
}
return nReversed;
}
public class Palindrome {
public static void main(String args[]) {
int x = 121;
int res = 0;
while (x > 0) {
res = res * 10 + (x % 10);
x /= 10;
}
if (x - res == 0) {
System.out.println("True" + res);
} else
System.out.println("False" + res);
}
}
您好!这段代码是在不将 int
转换为 String
的情况下检查整数是否为回文。出于某种原因,计算机认为 res
与 x
不同,尽管两者都代表数字 121
。感谢您的帮助并提前致谢!
你很接近。这是一个基于您所做的解决方案:
static bool isPalindrome (int n1, int n2) {
return getReverseInteger(n1) == n2;
}
static int getReverseInteger (int n) {
int nReversed = 0;
while (n > 0) {
int digit = n % 10;
nReversed = nReversed * 10 + digit;
n = (n - digit) / 10;
}
return nReversed;
}