回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
* 輸入: 121* 輸出: true
** 輸入: -121
* 輸出: false
* 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是乙個回文數。
** 輸入: 10
* 輸出: false
* 解釋: 從右向左讀, 為 01 。因此它不是乙個回文數。
public class palindrome
/*** 方法一: 轉換為陣列,將第乙個和最後乙個依次進行對比
* 思路:
** @param x
* @return
*/public static boolean ispalindrome1(int x)
}return flag;
}/**
* 方法二:反轉一半數字
* 思路:
* 映入腦海的第乙個想法是將數字轉換為字串,並檢查字串是否為回文。
* 但是,這需要額外的非常量空間來建立問題描述中所不允許的字串。
* 反轉全部數字可能會導致溢位問題,所以我們只需反轉一半
* 首先,反轉我們可以通過原數字x / 10以及
* 反轉數:revertednumber = revertednumber * 10 + x %10
* 那麼如何判斷是否進行到一半了呢?
* 我們可以加個判斷,當: x < revertednumber時說明進行到一半了
** @param x
* @return
*/public static boolean ispalindrome2(int x)
int revertednumber = 0;
while (x > revertednumber)
//當數字長度為奇數時,我們可以通過 revertednumber/10 去除處於中位的數字。
//例如:輸入12321,最後結果為: x = 12,revertednumber = 123
return x == revertednumber || x == revertednumber / 10;
}}
判斷回文數演算法
回文數是指正序 從左到右 讀和倒序 從右到左 讀都是一樣的整數。比如形如 121,1221,13531 的數字都是回文數,但 121,10,25 等等都不是回文數。如何判斷乙個數是回文數?這是乙個很簡單的演算法,最常見的實現方式是使用乙個棧或其他方法,把數字序列逆序,然後判斷逆序後的數字是否等於原先...
回文數判斷 演算法
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左...
判斷回文數
如果乙個數的反向倒置數和它的順向數一樣,那麼這個數稱為回文數。編寫乙個測試程式,提示使用者輸入乙個整數值,然後報告這個數是不是回文數。我先後一共寫了三個函式。方法一 由於題目要求輸入的是整數值,所以按照整數的方法倒置數字,與原數比較即可。public class palindrom public s...