leetcode 7—— integer reverse

来源:互联网 发布:耐克网络分销 编辑:程序博客网 时间:2024/06/05 18:03

       我的代码:

     

//必须要分离出每一位,而这个只能通过除10//如果是负数,那么乘以-1变成正数处理,之后再乘-1回去即可//所以现在考虑正数情况就可以了int reverse(long num){bool sig = false;if (num >= INT_MAX || num <= INT_MIN)return 0;if (num < 0){num = num * -1;sig = true;}long long result = 0;vector<int> arr;int loopTime = 0;if (num < 10){if (sig)num *= -1;return num;}if (num >= 10){while (num >= 10){int x = num % 10;num = num / 10;arr.push_back(x);loopTime++;}arr.push_back(num);}//凑回去for (int i = loopTime; i >= 0; i--){int j = loopTime - i;result += arr[j] * pow(10,i);}if (sig)result *= -1;if (result > INT_MAX || result < INT_MIN)return 0;return result;}
       学到新的东西:long long 类型的使用,如果我把result定义成int的话,后面对大数(INT_MAX,INT_MIN)的测试就会出现over flow的问题。

       long long本质上还是整型,只不过是一种超长的整型。


int型:32位整型,取值范围为-2^31 ~ (2^31 - 1) . long:在32位系统是32位整型,取值范围为-2^31 ~ (2^31 - 1);在64位系统是64位整型,取值范围为-2^63 ~ (2^63 - 1)
long long:是64位的整型取值范围为-2^63 ~ (2^63 - 1)

原创粉丝点击