前幾天遇到了整型數字反轉的問題,當初使用了n多個if-else,整整將**寫了到260多行,omg~~~,後來做了優化處理,大概不到30行,於是分享給大家看看。
給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
#define max (2147483647)
#define min (-2147483648)
int reverse(long int x)
while (x != 0)
return state * m;
}
我們輸入了乙個符合範圍的數字,反轉之後,我們需要做乙個越界檢測,如果不做的話,最後輸出的結果是不符合反轉結果的。越界的意思是當這個數越界以後,會變成其他符合範圍的數,不再是我們給定的數。
所以在反轉之後,將得到的反轉倒推回去再與原來的某個數做比較,如果不相等的話,那麼就說明發生了越界,否則符合範圍之內。
關於《明解C語言》
不得不說,對於我這種笨人,這本書簡直就是神書。猶記得上學期在華班的時候,也是要上 資料結構 這門課。然鵝當時的我只學過python,對c語言的了解基本等於零。然鵝我發現了這本書,用了3個晚上把它看完。然後那學期資料結構就考了98分。然鵝這學期士諤也有資料結構啊,然鵝這學期的資料結構比華班的資料結構難...
C語言關於數字的經典問題
1.統計n是個幾位數字 演算法思想 每次丟棄個位數字,計數器 直到n為0 注意 丟棄個位 n 10 得到個位 n 10 int count long long n return tmp int main 測試用例,盡量詳細,printf d n count 123456789 printf d n ...
c 解算3 3矩陣的逆矩陣
用伴隨矩陣計算3行3列矩陣的逆矩陣 要求矩陣行列式不能為0 原理參考 矩陣子函式部分 double matrixinversion3 3 double a 3 3 主函式部分 include using namespace std double matrixinversion3 3 double a...