鉴于两个数字0140,9802 我必须找到他们之间的所有回文。 如果有任何理由,请建议最佳算法。谢谢
这些数字将会增加,如0141,0142,... 0220(它的回文),...直到9802
我在下面尝试了一个
public static void calc(String s1,String s2){
int count=0;
int s=Integer.parseInt(s1);
int e=Integer.parseInt(s2);
for(int i=s;i<=e;i++){
if(i<1000){
if(i%10==0){
i=i/10;
if(i%10==i/10){
count++;
}
}
}else{
if(isPalindrome(i)){
count ++;
}
}
}
System.out.println(count);
}
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 (number == reverse) {
return true;
}
return false;
}