leecode_翻轉整數

#翻轉整數-簡單

數學


題目:

給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
注意:
假設我們的環境只能存儲得下 32 位的有符號整數,則其數值範圍爲 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢出那麼就返回 0。


思路:

用%取的整數的最低位,作爲翻轉數後的高位,同時用變量c來存儲每次的結果,並判斷輸入的數字又沒在數據範圍之外,如果有就返回0;判斷這個數有幾位就每次把這個數除以10當商爲0,就代表最高位就結束了。


int reverse(int x){
    
static int a, i; 
 long c ;

for(i=0;i<20;i++)
{
    a=x%10;
    x=x/10;
    c=a+c*10;                                        //作爲結果輸出
       if( c>0x7fffffff || c<(signed int)0x80000000)
   {
       return 0;
   }
    if(0==x)
        break;

}
    return c;

    
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章