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

测试用例:

int main()
{
  cout << reverse(123) << endl;
  cout << reverse(-123) << endl;
  cout << reverse(1000000003) << endl; 

  system("pause");
  return 0;
}

测试结果:

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

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

(0)

相关推荐

  • C++ 虚函数的详解及简单实例

    C++ 虚函数的详解 虚函数的使用和纯虚函数的使用. 虚函数是在基类定义,然后子类重写这个函数后,基类的指针指向子类的对象,可以调用这个函数,这个函数同时保留这子类重写的功能. 纯虚函数是可以不用在基类定义,只需要声明就可以了,然后因为是纯虚函数,是不能产生基类的对象,但是可以产生基类的指针. 纯虚函数和虚函数最主要的区别在于,纯虚函数所在的基类是不能产生对象的,而虚函数的基类是可以产生对象的. // pointers to base class #include <iostream> usi

  • C++ 类的继承与派生实例详解

     C++ 类的继承与派生实例详解 继承性是面向对象程序设计最重要的特性之一,使软件有了可重用性,C++提供的类的继承机制. 继承与派生的概念 一个新类从已有的类那里获得已有的特性,这种现象称为类的继承.同样也可以说成已有的类派生出来了新的类.类A继承自类B也就是类B派生了类A.所以继承和派生的关系就像小学时把字句和被字句的造句一样.有了继承与派生后,就有了父类/基类与子类/派生类,C++中将类B称为父类/基类,将类A称为子类/派生类. 派生类的声明: #include <iostream> u

  • C++连接mysql的方法(直接调用C-API)

    我装的是5.1版本,需要的头文件有 把需要的文件添加进去,然后再把 libmysql.lib放到项目目录里,文件在mysql安装目录 lib 下面. #include "stdafx.h" #include <iostream> #include <winsock2.h> #include "mysql.h" //#pragma comment(lib, "ws2_32.lib") #pragma comment(lib,

  • C/C++ 连接MySql数据库的方法

    一.VS2008工程设置工作 首先,建立一个windows应用程序的工程,将C/C++->预处理器->预处理器定义下的_WINDOWS改为_CONSOLE, 将连接器->系统->子系统 选择为控制台. 由于我们要使用Mysql的API,并且我们机子上肯定安装了Mysql数据库,所以我们要将工程的头文件路径指向Mysql安装目录的同文件mysql.h所在的位置,将连接库路径指向libmysql.lib所在的路径, 在我的机子上,Mysql 的安装路径为:C:\Program File

  • 浅析c++ 中const关键字

    const是一个C++语言的限定符,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的安全性和可靠性.另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助. define与const的区别 1.define作用在预处理时,是简单地字符替换 2. const作用在编译时,具有类型检查的功能 3. const必须进行初始化 常量指针与指针常量 #include <iostream> using std::endl; using std::cout

  • 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存在

  • javascript将中国数字格式转换成欧式数字格式的简单实例

    项目中遇到一个需求,要把中国式的显示阿拉伯数字的方式改为欧式的,即每三位显示,中间用逗号隔开,比如12345678改成12,345,678的显示方式,下面就是javascript代码的具体实现: var iValue = 20002365879; //要转换的数字 var sValue = iValue+''; var aValue = new Array(); var iNum = sValue.length%3; var aResult; //转换结果 var index = 0; if(s

  • Android自定义View实现带数字的进度条实例代码

    第一步.效果展示 图1.蓝色的进度条 图2.红色的进度条 图3.多条颜色不同的进度条 图4.多条颜色不同的进度条 第二步.自定义ProgressBar实现带数字的进度条 0.项目结构 如上图所示:library项目为自定义的带数字的进度条NumberProgressBar的具体实现,demo项目为示例项目以工程依赖的方式引用library项目,然后使用自定义的带数字的进度条NumberProgressBar来做展示 如上图所示:自定义的带数字的进度条的library项目的结构图 如上图所示:de

  • mysql字符串的‘123’转换为数字的123的实例

    方法一:SELECT CAST('123' AS SIGNED); 方法二:SELECT CONVERT('123',SIGNED); 方法三:SELECT '123'+0; 以上这篇mysql字符串的'123'转换为数字的123的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • java 字符串反转的实例详解

    java 字符串反转的实例详解 1.new StringBuffer("abcde").reverse().toString(); 2.通过char数组进行转换, 代码如下 package com.test.reverse; public class TestReverse { public static void main(String[] args) { // 声明任意字符串 String str = "abcde"; //将字符串转换成char[] char[

  • javascript实现数字配对游戏的实例讲解

    游戏效果如下图所示: 规则: 在4X5的格子中,有随机的互不相等的10个数,每个数据有两份(也就是20个数,有两两相等的十对),随机分布在20个格子中.游戏开始,弹出二十个数的序列.每次点击格子会显示当前格子中的数据并暂时保留显示,直到下一次点击,如果下一次点击显示的数据与保留的数据不同,则之前点击保留的数据会消失(仍然存在于该格子但不显示).如果连续点击显示的两个数据一样,则两个数据都会显示并且不会再消失. 直到所有数据都通过连续点击相同数据的方式显示出来,就算游戏结束,报出游戏用时.此时可以

  • pytorch 利用lstm做mnist手写数字识别分类的实例

    代码如下,U我认为对于新手来说最重要的是学会rnn读取数据的格式. # -*- coding: utf-8 -*- """ Created on Tue Oct 9 08:53:25 2018 @author: www """ import sys sys.path.append('..') import torch import datetime from torch.autograd import Variable from torch im

  • java输入数字,输出倒序的实例

    我就废话不多说了,大家还是直接看代码吧~ package c10; import java.util.Scanner; public class zhengzhengshu { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("输入一个正整数:"); int num = input.nextInt(); while (num != 0)

  • javascript常见数字进制转换实例分析

    本文实例讲述了javascript常见数字进制转换的方法.分享给大家供大家参考,具体如下: 基本思路是先把其他进制的转化成 十进制,然后再转化.这个过程是利用parseInt函数,例如把一个16进制的数字(num)转化成10进制,num = parseInt(num,16). 如果再想把它转化成二进制的,就是如下:num.toString(2) . 这其中关于16进制的一个函数也很特别,escape函数可以将一个字符串转化成16进制的数字. 下面是一个综合的例子: var a = escape(

  • JS返回只包含数字类型的数组实例分析

    本文实例分析了JS返回只包含数字类型的数组实现方法.分享给大家供大家参考,具体如下: 实现效果如:js123ldka78sdasfgr653 => [123,78,653] 一般做法 分析: 1.循环字符串每个字符,是数字的挑出来拼接在一起,不是数字的,就给他空的拼个逗号 2.将新字符串每一位转换为数组,再次遍历,存在的挑出来,即得到结果 var str="js123ldka78sdasfgr653"; var new_str=""; var arr=[];

随机推荐