寻找回文数

时间:2016-10-16 17:48:51

标签: java algorithm dynamic-programming palindrome

鉴于两个数字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;
}

0 个答案:

没有答案