//思路十分暴力
//就是把原带符号数的每一位取出来
//再逐个乘10的幂次
//要注意的是如何判断溢出
//哇判断溢出这个是我心中永远的痛了,从C语言学到数电、数据结构再到计原,我就没学明白过
//有人看我博客么,给我通俗易懂的讲讲好么,我现在看到“溢出”两个字就犯怵,但没想到胡诌竟然还把题目做出来了
class Solution {
public:
int reverse(int x) {
if(x==0) return 0;
int x_abs = abs(x);
int p[12];
int len = 0;
for(int i=0;;){
int dip;
int reserve;
int shang;
if(i==0) reserve = x_abs;
shang = reserve/10;
dip = reserve - shang*10;
//cout<<"i:"<<i<<endl;
//cout<<"dip:"<<dip<<endl;
reserve = shang;
p[i] = dip;
//cout<<"p["<<i<<"]:"<<p[i]<<endl;
i++;//计数,最终有i位,0——i-1
if(reserve==0){
len = i;
break;
}
}
int solution = 0;
for(int j = 0;j<len;j++){
solution = solution + p[j]*pow(10,len-j-1);
if(solution<0) return 0;
}
if(x<0) solution = (-solution);
return solution;
}
};