zoukankan      html  css  js  c++  java
  • 整数反转

    题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例 1:

    输入: 123
    输出: 321

    此题为leetcode上的第7题 ,题解链接在此:https://leetcode-cn.com/problems/reverse-integer/

    说明:此题用JS有多种方法可以实现,但是!最优解是使用数学计算解决,使用转字符串,转数组的方式这里不提。

    直接上代码:

     1 /**
     2  * @param {number} x
     3  * @return {number}
     4  */
     5 var reverse = function(x) {
     6     let current = 0
     7     let MAX_VALUE = Math.pow(2, 31) - 1
     8     let MIN_VALUE = Math.pow(-2,31)
     9     while(x !== 0){
    10         let pop = x % 10
    11         if(current > MAX_VALUE / 10 || (current === MAX_VALUE / 10 && pop > 7))
    12             return 0
    13         if(current < MIN_VALUE / 10 || (current === MIN_VALUE / 10 && pop < -8))
    14             return 0
    15         current = current * 10 + pop
    16         x = parseInt(x / 10)
    17         
    18     }
    19     return current
    20 };

      具体思路,点击上方链接进入官方查看题解即可,这里只说明一点就是,因为javascript语言的特殊性,所有数字都属于Number类型,不会像C类语言,如C++,Java一样自动舍弃小数点后面的浮点数,将最后的结果转为整数。所以一定要使用全局对象中的parseInt()函数将结果转为整数,这样才能提交通过。注意:一定不要使用Math.floor()进行向下取整,因为当-123 / 10 向下取整时的结果是-13,不符合预期结果,遇到负数就会出错。

    另外补充一个知识点:

    正数模任意非0的数,结果都是正数,负数模任意非0的数,结果都是负数

    每天打卡一个算法!第一天!

     

  • 相关阅读:
    Java集合
    C#高级应用
    使用C#分层查询多个表数据
    数据库之SQL语句查询基础
    简要介绍一下MD5加密的书写
    C#简单工厂模式和单列设计模式潜要解析
    Struts2测试题
    小程序自定义组件
    flex布局笔记
    小程序的双线程模型
  • 原文地址:https://www.cnblogs.com/cducz/p/11823433.html
Copyright © 2011-2022 走看看