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