1. 程式人生 > >求一個數字是否是迴文數

求一個數字是否是迴文數

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

示例 1:

輸入: 121
輸出: true

示例 2:

輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴文數。

示例 3:

輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。因此它不是一個迴文數。

進階:

你能不將整數轉為字串來解決這個問題嗎?

求解思路:將一個數從最後一位開始向前面還原此數:如12345從個位數開始向前面開始還原成54321,如果還原之後的數與原數相等,則為迴文數

程式碼如下:

bool isPalindrome(int x)
{
    if(x/10<0)
    {
         return true;
    }
    int tmp=0;
    int data=x;
    while(data)
    {
         tmp=tmp*10+data%10;
         data=data/10;
    }
    if(x==tmp)
    {
         return true;
    }
    return false;
}