7.整数反转
题目链接:https://leetcode-cn.com/problems/reverse-integer
1.思路
记得曾经在洛谷做过,回去翻了下,自己定义了个10000000长度的数组……
先记录数组长度,根据数组长度定义数组,记录各个数对应的位数,再分别乘以10的次方实现反转
2.注意事项
1.先回忆了32位的有符号数的概念(有关原码、反码、补码);
2.在给s赋值时,9*10^10赋值出错,单int是不行的:
整型变量int占4个字节,32位,取值范围是-2^31 - 2^31-1 ,也就是(-2147483648) - (2147483647),若溢出则会循环取值,
也就是2147483648溢出后回到了最小负整数-2147483648,2147483649溢出后变成了-2147483648+1=-2147483647;
而对x取绝对值时,给定数据超过了限制,即int x ,改成long long int 从根源上解决问题
3.再学习学习abs(),pow(),sizeof()……
3.代码
1 | int reverse(long long int x){ |