給定乙個 32 位有符號整數,將整數中的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231, 231 − 1]。根據這個假設,如果反轉後的整出,則返回 0。
①翻轉數字問題需要注意的就是溢位問題。
為什麼會存在溢位問題呢,我們知道int型的數值範圍是 -2147483648~2147483647, 那麼如果我們要翻轉 1000000009 這個在範圍內的數得到 9000000001,而翻轉後的數就超過範圍。用long long 型資料,數值範圍-9223372036854775808~9223372036854775807, 遠大於int型這樣就不會出現溢位問題。
②解題思路
先判斷是否為負數,為負數乘以-1,當為正數時直接進入迴圈,然後判斷是否超限返回0值。再判斷標誌變數,新增回正負號。
1.類的封裝
class solution
while (x > 0)
if (res > int_max)
return 0;
if (isposition)
return res;
else
return -res;
}};
2.標頭檔案
#include#includeusing namespace std;
3.z主函式
int main()
寫的**都在vs2015下測試沒有問題,如果輸入為int b = 321;
輸出為
int a = 0.7;
cout << a << endl;
當數值型別為int,取值小於1時。其值直接為0,保證class solution裡面while()跳出迴圈。
#include#includeusing namespace std;
class solution
while (x > 0)
if (res > int_max)
return 0;
if (isposition)
return res;
else
return -res;
}};int main()
LeetCode顛倒整數
給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。解...
leetcode 顛倒整數
給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。class s...
LEETCODE刷題01 顛倒整數01
為提高自己的專業技術,藝多不壓身,早上吃了飯就去了leetcode看了看,覺得挺有意思的。記錄一下答題過程吧 題目是這樣的 給定乙個範圍為 32 位 int 的整數,將其顛倒。例 1 輸入 123 輸出 321例 2 輸入 123 輸出 321 例 3 輸入 120 輸出 21 注意 假設我們的環境...