第七题:数字取个位,十位,百位......(自己写的)
1.边界情况:
题目会给超过int范围的所以用了long long 。
2.思路:
原整数用10取余,新整数乘10加上取余结果,原整数除10 ;套个循环加上正负判断解决。
算法代码
class Solution {
public:
int reverse(int x) {
if (x<INT_MIN+1 || x>INT_MAX - 1)
return 0;
int yu = 0, k = 1;
long long y = 0;
if (x < 0)
k = -1;
int z = abs(x);
int i = 0;
while (z != 0)
{
yu = z % 10;
z = z / 10;
y = y * 10 + yu;
i++;
}
if (y<INT_MIN + 1 || y>INT_MAX - 1)
return 0;
return y*k;
}
};
static const int _ = []() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
return 0;
}();