逆序輸出乙個整數的各位數字 整數反轉

2021-10-11 01:53:59 字數 921 閱讀 1055

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為

剛看到這題題目,第一反應是先將整數轉化為字串,然後判斷有無符號,再逆序輸出。

但是這種方法要在字串和數字之間進行轉換兩次,比較麻煩,而且轉換效率也不高,還要用到很多庫函式,所以更推薦通過數學計算的方法來求解。

#include
官方解法:

這種思路比較好,x通過對10取餘數,得到個位上的數,再將其存到ans變數裡,通過迴圈迭代,不斷得到十位、百位、千位上的數字,然後判斷是否溢位。沒有溢位的話就直接輸出。

判斷溢位條件是:

對於整數,如果 (ans > integer.max_value / 10 || (ans == integer.max_value / 10 && pop > 7)) ,則一定溢位。 其中, ans = ans * 10 + pop

用網上大神分享的圖來表示比較容易理解:

以及上下限個位上數字的求法,非常直觀

正序逆序輸出正整數中各位數字

一 輸出整數各位數字 求出它是幾位數 分別列印出每一位數字 按逆序列印出各位數字。define crt secure no warnings include include intgetdigit int num 整數有多少位 return count void reprintnum int num...

實驗4 2 8 輸出整數各位數字

本題要求編寫程式,對輸入的乙個整數,從高位開始逐位分割並輸出它的各位數字。輸入在一行中給出乙個長整型範圍內的非負整數。從高位開始逐位輸出該整數的各位數字,每個數字後面有乙個空格。1 2 3 4 5 6 方案1 常規方法 include include intmain int number 1 用於表...

求整數字數,以及順序與逆序輸出各位數字

1求位數,演算法 每次丟棄個位數字,計數器 直到n為0 與我們用眼睛去數類似,即不斷給該整數除以十,計數,此處要考慮當給的整數字0時的特殊情況,c 如下 int count long long n return tmp 2.逆序輸出 演算法 求出低位,輸出低位,再丟棄低位,重複執行直到n為0 這裡關...