intreverse(int x){int buf[32]={0};int flag =1;longint var =0;if(x <0){
flag =-1;if(x ==-((long)1<<31))return0;
x =-x;}int k =0;for(int i=0; i<32&& x>0;++i){
buf[i]= x%10;
x /=10;++k;}for(int j=0; j<k;++j){
var = var*10+ buf[j];}if(-1== flag){
var =-var;}if((var <(-((long)1<<31)))|| var>(((long)1<<31)-1))return0;return(int)var;}
intreverse(int x){int flag =1;// 用来记录是否是负数longint var =0;// 标记正负,并求取其绝对值,对绝对值反转更容易些if(x <0){
flag =-1;if(x ==-((long)1<<31))// 如果是-2^31,求其绝对值就会溢出return0;
x =-x;// 得到其绝对值}// 用一个长整型来存储反转的值,确保数据不会丢失while(x>0){
var = var*10+ x%10;
x /=10;}// 若之前的数,为负,则将反转的数也取为负数if(-1== flag){
var =-var;}// 判断反转的数是否在32bit的范围内if((var <(-((long)1<<31)))|| var>(((long)1<<31)-1))return0;return(int)var;// 返回强制转换后的数}