ACM 判斷回文數

2021-09-13 15:25:35 字數 700 閱讀 7922

示例 1:

輸入: 121

輸出: true

示例 2:

輸入: -121

輸出: false

解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是乙個回文數。

示例 3:

輸入: 10

輸出: false

解釋: 從右向左讀, 為 01 。因此它不是乙個回文數。

根據示例,我們可以得出幾個結論:

(1)負數一定不存在回文數。

(2)個位為0的數,反轉後位數發生變化,一定不是回文數。

(3)數字反轉後,可能會出現資料溢位的情況,可以只反轉數的一半,如果是回文數,後半部分反轉後應該與原始數字的前半部分相同。

如何知道反轉數字的位數已經達到原始數字位數的一半?

c++解法

bool ispalindrome(int x) 

return x == reversenum || x == reversenum/10;

}

也可以將變數轉換成string型別,string型別有反轉字串的函式

string str="12345";

reverse(str.begin(),str.end());

cout << str;

判斷回文數

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

判斷回文數

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

回文數判斷

leetcode上關於回文數的解法 出現的問題 error signed integer overflow 846384741 10 cannot be represented in type int solution.cpp 在進行回文數練習時,使用的如下解法 bool ispalindrome ...