顛倒整數 c 演算法 leetcode7

2021-08-30 15:27:05 字數 1499 閱讀 8652

給定乙個 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 注意 假設我們的環境...