一種方法是先翻轉當前數,然後把它和原數比較(略)
另一種是遞迴方法,借用一個複製數,對原數遞迴,使之翻轉,然後配合複製數比較
package recursion;public class Check_if_a_number_is_palindrome {public static void main(String[] args) {int num = 121321;System.out.println(check(num));num = 12321;System.out.println(check(num));num = 123321;System.out.println(check(num));}// 一種方法是先翻轉當前數,然後把它和原數比較(略)// 另一種是遞迴方法static int dupNum;public static boolean check(int num) {dupNum = num;// 複製一份原數return rec(num);}public static boolean rec(int num) {if(isSingleDigit(num)) {return num == dupNum%10;}// 通過遞迴使得num:121->12->1 相當於從原數的左到右進行比較if(!rec(num/10)){// 之前比較已經失敗了,就無需繼續比較return false;} else {dupNum /= 10;return num%10 == dupNum%10;// 取原數的最後一位和遞迴數的最後一位進行比較}}// 輔助函數:判斷是否是個位元public static boolean isSingleDigit(int num) {if(num >= 0 && num < 10) {return true;} else {return false;}}}
http://www.geeksforgeeks.org/check-if-a-number-is-palindrome/