leetcode-7.整数反转
idea:题面是将给定32以内整数反转
算法:先判断数字正负,记录符号(1 / -1)
将数字每一位用数组存储
遍历数组,通过权重不同实现数字反转,过程中判断是否超出32位数字范围(2147483647 ~ -2147483648),超出直接返回0
返回计算结果与符号的乘积
code:
注意:做边界值的检测
class Solution { public: int reverse(int x) { int a[100]; int index = 0;//数组索引(下标) int signal = 1; if(x < 0)//判断一下正负 { signal = -1; x = -x; } while(x)//数字数组化 { a[index] = x % 10; x /= 10; index++; } x = 0; for(int i = 0; i < index; i++)//反转计算 { x += a[i]*pow(10, index-i-1); if(x >= 2147483647 || x < -2147483647)//做32位数字边界判断,超出返回0 { return 0; } } return x*signal; } };