J'essaie de trouver Palindrome non mais chaque fois qu'il montrent de faux pour chaque non même pour 121
S'il vous plaît aider ...
5 Réponses :
Parce qu'après la fin de votre volant en boucle, x sera 0 code>, vous devez agir sur une copie à la place public boolean isPalindrome(int x) {
int num = x;
if(x<0 || x%10==0){
return false;
}
int rev = 0;
while(x!=0){
rev=(rev*10)+(x%10);
x/=10;
}
if(num==rev){
return true;
}
else{
return false;
}
}
Votre fonction peut être aussi simple que ci-dessous
public static void main(String args[]){
int r,sum=0;
int n=454;//It is the number variable to be checked for palindrome
if(isPalindrome(n)) {
System.out.println("palindrome number ");
} else {
System.out.println("not palindrome number ");
}
}
public boolean isPalindrome(int n) {
while(n>0){
r=n%10; //getting remainder
sum=(sum*10)+r;
n=n/10;
}
return n==sum;
}
comme une option, vous pouvez créer quelque chose comme ceci:
public boolean isPalindrome(int x) {
StringBuilder sb = new StringBuilder();
sb.append(x);
return sb.toString().equals(sb.reverse().toString());
}
J'espère que cela est utile:
Tout ce que vous avez à faire est de construire le nouveau numéro lorsque vous réduisez l'original. Puis comparez les deux.
121 - true 12321 - true 123 - false 34543 - true 20012 - false