數字反轉 如何判斷回文數

2021-10-01 03:26:52 字數 588 閱讀 7989

數字回文

在leetcode的刷題的時候,碰見了乙個很簡單的題目:

判斷乙個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

看到題目的第一反應是將int轉化成string然後再判斷是否是回文。

仔細思考一下之後,發現數字的反轉也是有規律可循的,根本不需要轉化成字串。**如下:

int x = 1213121;

int rev = 0;

int tmp = 0;

while(rev < x)

以反轉x為例,思路就是不斷的將x與10的餘數取出來,每次取出之後將x除以10一遍取出下一位,這樣數字就被反轉過來了。

而上述實現**中,rev只反轉了一半,如果rev比x大(rev每次乘10,x每次除10),說明數字已經反轉了一半。按照回文的思路,如果當前的x位數是單數,則rev會比x多出一位。回文的條件是x == rev/10。如果當前的x位數是雙數,則rev和x相同位數,回文的條件是 x == rev。

所以最後判斷是否是回文數的條件是 x == rev || x == rev/10 。

回文數字判斷

題目描述 有這樣一類數字,他們順著看和倒著看是相同的數,例如 121 656 2332 等,這樣的數字就稱為 回文數字。編寫乙個函式,判斷某數字是否是回文數字。要求實現函式 int ispalindrome int inumber 輸入 inumber 整型數字 輸出 0 不是回文數字 1 是回文數...

判斷回文數

如果乙個數的反向倒置數和它的順向數一樣,那麼這個數稱為回文數。編寫乙個測試程式,提示使用者輸入乙個整數值,然後報告這個數是不是回文數。我先後一共寫了三個函式。方法一 由於題目要求輸入的是整數值,所以按照整數的方法倒置數字,與原數比較即可。public class palindrom public s...

判斷回文數

回文 是指正讀反讀都能讀通的句子,它是古今中外都有的一種修辭方式和文字遊戲,如 我為人人,人人為我 等。在數學中也有這樣一類數字有這樣的特徵,成為回文數 palindrome number 設n是一任意自然數。若將n的各位數字反向排列所得自然數n1與n相等,則稱n為一回文數。例如,若n 123432...