LeetCode刷題(2)--整數反轉
阿新 • • 發佈:2020-12-31
題目描述
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例:輸入123,輸出321。輸入-123,輸出-321。輸入120,輸出21。
解題思路
把最後的一個數字相繼的提出然後通過依次的乘十累加還原逆序數。
程式碼演示:
#include<math.h> int reverse(int x) { long long r=0; while(x!=0){ r=r*10+x%10; x/=10; } if(r>pow(2.0,31)||r<-pow(2.0,31)-1) { return 0; } return r; } int main() { cout<<reverse(-125)<<endl; }
結果:
講解一下解題過程:
輸入-125
第一步,判斷-125!=0,r=0* 10+(-125%10)=-5,x=x/10=-12
第一步,判斷-12!=0,r=-5* 10+(-12%10)=-52,x=x/10=-1
第一步,判斷-1!=0,r=-52* 10+(-1%10)=-521,x=x/10=0
所以結果為-521。
主要的思想就是先後將最後一位取出,然後通過依次的乘十累加,這樣就可以還原逆序數。