栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

数字的反转

 (144)  (0)

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

备注:当数字溢出时,则程序返回0。

解题思路:

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过程,我用一个简单的例子来演示一下。

实现代码如下:

#include 
#include 
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; 
} 

测试用例:

int main() 
{ 
  cout << reverse(123) << endl; 
  cout << reverse(-123) << endl; 
  cout << reverse(1000000003) << endl; 
 
  system("pause"); 
  return 0; 
} 

测试结果:

如果大家有更好的解法,欢迎大家积极讨论。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/63486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号