1. 程式人生 > 其它 >LeetCode刷題(2)--整數反轉

LeetCode刷題(2)--整數反轉

技術標籤:刷題!!!leetcode演算法

題目描述

給出一個 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。
主要的思想就是先後將最後一位取出,然後通過依次的乘十累加,這樣就可以還原逆序數。