当前位置:   article > 正文

leetcode 整数反转 算法题 C语言_rev = rev * 10 + x % 10;

rev = rev * 10 + x % 10;

GitHub - frankRenlf/c_dailyWork

  1. #include<math.h>
  2. #define INT_MIN pow(-2,31)
  3. #define INT_MAX pow(2,31)-1
  4. int reverse(int x) {
  5. int tmp = 0;
  6. int y = 0;
  7. int arr[31] = { 0 };
  8. for (tmp = 0; x != 0; tmp++)
  9. {
  10. arr[tmp] = (x % 10);
  11. x /= 10;
  12. }
  13. for (int i = 0; i < tmp; i++)
  14. {
  15. if (y < INT_MIN / 10 || y > INT_MAX / 10) {
  16. return 0;
  17. }
  18. y = y * 10 + arr[i];
  19. }
  20. return y;
  21. }
  22. int reverse_2(int x) {
  23. int rev = 0;
  24. while (x != 0) {
  25. if (rev < INT_MIN / 10 || rev > INT_MAX / 10) {
  26. return 0;
  27. }
  28. int digit = x % 10;
  29. x /= 10;
  30. rev = rev * 10 + digit;
  31. }
  32. return rev;
  33. }

给了两种解答方式,我一开始想到前一种,后面觉得多此一举,就改成了后一种,可以直接将结果相加相乘,省去了用数组储存

有问题可在评论指出,觉得还行就给个赞和关注吧

也可以关注这个系列,后续也会有更新,和其他代码产出

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号