反转int型数字,123变321
本以为很简单,没想到暗含一条,若输出大于int的范围,则为0
我只能用最快捷的方法,全部转成long long型,每次将输出与int的最大值和最小值相比较,进行输出
int reverse(int x) {
long long i,num[65],n,m,flag;
long long max_num=2147483647,min_num=-2147483648;
long long longx;
longx=x;
n=0;
while(longx!=0)
{
num[n]=longx%10;
longx=longx/10;
n++;
}
m=1;
for(i=n-1;i>=0;i--)
{
longx+=num[i]*m;
m*=10;
}
if(longx>max_num||longx<min_num)
return 0;
else return (int)longx;
}