题目:

字符串转化成整数需要使用库函数,并且这种方式的效率也低,因从可以通过数学的方式,对数据进行处理,从后往前获取一个一个的数据。
下面的四张图是关于比较过程的举例描述


- 如何计算2的31次方的个位数的大小

#include "iostream"using namespace std;class Solution {public:int reverse(int x) {int res = 0;int pop;while (x != 0) {pop = x % 10;x /= 10;if (res > INT_MAX / 10 || (res == INT_MAX / 10 && pop > 7))return 0;if (res < INT_MIN / 10 || (res == INT_MIN / 10 && pop < -8))return 0;res = res * 10 + pop;}return res;}};int main() {Solution s;cout << s.reverse(663275) << endl;}
注意:下面是自己想的一种方式 ,可是后来经过验证是错误的,因为题目限制就是防止溢出,溢出就返回0,可是我写的会导致溢出,直接就会发生错误,因此需要在溢出之前就判断出来。
#include "iostream"using namespace std;class Solution {public:int reverse(int x) {int res = 0;int pop;while (x != 0) {pop = x % 10;x /= 10;res = res * 10 + pop;if (res > INT_MAX)return 0;}return res;}};int main() {Solution s;cout << s.reverse(1534236469) << endl;}
