源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++ 数字的反转实现实例

  • 时间:2020-09-17 06:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++ 数字的反转实现实例
[b]数字的反转[/b]  (144)  (0) Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
备注:当数字溢出时,则程序返回0。 [b]解题思路:[/b] 1、用一个变量y(初始化为0)保存改变之后的值; 2、将x的个位取下来,并且y乘上10,然后对加上x; 3、判断y-x的个位除以10,时候等于变量y(防止数字溢出),如果不等于则返回0; 4、将x等于x除以10,进一位; 5、当x存在时,循环2~4; 6、返回y; 可能大家看不懂3过程,我用一个简单的例子来演示一下。 [img]http://files.jb51.net/file_images/article/201706/201706300839011.png[/img] 实现代码如下:
#include<iostream> 
#include<windows.h> 
using namespace std; 
 
int reverse(int x) { 
    int num = 0; 
    while (x != 0) 
    { 
      int tail = x % 10; 
      int newnum = num * 10 + tail; 
      if ((newnum - tail) / 10 != num) 
      { 
        return 0; 
      } 
      num = newnum; 
      x /= 10; 
    } 
    return num; 
} 
[b]测试用例:[/b]
int main() 
{ 
  cout << reverse(123) << endl; 
  cout << reverse(-123) << endl; 
  cout << reverse(1000000003) << endl; 
 
  system("pause"); 
  return 0; 
} 
测试结果: [img]http://files.jb51.net/file_images/article/201706/201706300839012.png[/img] 如果大家有更好的解法,欢迎大家积极讨论。 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部