1. 程式人生 > >LeetCode第7題:Reverse Integer

LeetCode第7題:Reverse Integer

題目描述:反轉整數輸出,注意的是輸入被假定為一個32位有符號整數。當反整數溢位時,函式應返回0。

  今年的華為的實習生招聘筆試的第一個題與這個有點類似,不過華為的是輸入兩個整數,反轉,然後輸出兩個整數反轉後兩個數的和。

  測試程式碼:

#include <iostream>
using namespace std;
class Solution {
public:
	int reverse(int x)
	{
		int reverseX=0;
		int temp;
		int a;
		int biaozhi=1;
		if (x<0)//如果x小於0,將它變成正的
		{
			biaozhi=-1;
			x=abs(x);
		}
		while(x!=0)//當x不等於0的時候
		{
			if (reverseX>(INT_MAX-x%10)/10)//判斷是否溢位
			{
				return 0;
			}
			else
			{
				temp=x%10;
				reverseX=reverseX*10+temp;
				x=x/10;
			}
		}
		return reverseX*biaozhi;
	}
};

int main()
{
	Solution s;
	int i=s.reverse(1534236469);
	cout<<i<<endl;
	return 0;
}