Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123 Output: 321
Example 2:
Input: -123 Output: -321
Example 3:
Input: 120 Output: 21
// ConsoleApplication2.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<math.h>
#include<malloc.h>
int main()
{
printf("%d\n", sizeof(int));
int reverse(int x);
printf("%d",reverse(-1534236421));
return 0;
}
/*
传入大于int的数会溢出,翻转时大于整形也会溢出
*/
int reverse(int x) {
int temp = 0,flag=0;
if (x < 0) {
temp = -x;
flag = 1;
}
else temp = x;
int sum=0,temp1=0;
while (temp){
int i = 0;
sum = 0;
for (i; i < 10; i++) {
sum = sum + temp1;
if (sum < temp1)
return 0;
}
sum = sum + temp % 10;
temp /= 10;
temp1 = sum;
}
if (flag) return -sum;
return sum;
}