赞
踩
GitHub - frankRenlf/c_dailyWork
- #include<math.h>
-
- #define INT_MIN pow(-2,31)
- #define INT_MAX pow(2,31)-1
-
- int reverse(int x) {
- int tmp = 0;
- int y = 0;
- int arr[31] = { 0 };
- for (tmp = 0; x != 0; tmp++)
- {
- arr[tmp] = (x % 10);
- x /= 10;
- }
- for (int i = 0; i < tmp; i++)
- {
- if (y < INT_MIN / 10 || y > INT_MAX / 10) {
- return 0;
- }
- y = y * 10 + arr[i];
-
- }
- return y;
- }
-
- int reverse_2(int x) {
- int rev = 0;
- while (x != 0) {
- if (rev < INT_MIN / 10 || rev > INT_MAX / 10) {
- return 0;
- }
- int digit = x % 10;
- x /= 10;
- rev = rev * 10 + digit;
- }
- return rev;
- }

给了两种解答方式,我一开始想到前一种,后面觉得多此一举,就改成了后一种,可以直接将结果相加相乘,省去了用数组储存
有问题可在评论指出,觉得还行就给个赞和关注吧
也可以关注这个系列,后续也会有更新,和其他代码产出
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。