• 7.整数反转


    题目描述: 给出一个32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
    示例 1: 输入: 123 输出: 321 示例 2:
    输入: -123 输出: -321 示例 3:
    输入: 120 输出: 21
    注意:
    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

    常规解法:对于负数,先转换成正数,和正数做一样的反转处理,判断结果是否溢出,再对负数加负号处理。

    注意:int型整数最小值取绝对值后超出整型范围,需要用long型存储,对应的取绝对值函数也应该用labs函数。

    //C语言
    
    #include<math.h>
    
    #define MaxIntInteger 2147483647 //也可以不使用宏定义,使用INT_MAX和INT_MIN
    #define MinIntInteger -2147483648
    
    int reverse(int x){
        long res = 0;
        long num = labs((long)x);
        while(num > 0){
            res = res * 10 + num % 10;
            num = num / 10;
        }
        if(x < 0) res = -res;
        if(res > MaxIntInteger || res < MinIntInteger) return 0;
        return res;
    }
    /**
     * @param {number} x
     * @return {number}
     */
    var reverse = function(x) { let num = x, res = 0; let maxIntInteger = 2147483647, minIntInteger = -2147483648; num = Math.abs(num); while(num != 0){ res = res * 10 + num % 10; //注意这里js的除法运算会保留小数 num = Math.floor(num / 10); } if(x < 0) res = -res; if(res > maxIntInteger || res < minIntInteger) return 0; return res; };
    /**
     * @param {number} x
     * @return {number}
     */
    var reverse = function(x) {
        let num = x, res = ""; //用字符串记录
        let maxIntInteger = 2147483647,
        minIntInteger = -2147483648;
        num = Math.abs(num);
    
        while(num != 0){
            res += num % 10;
            //注意这里js的除法运算会保留小数
            num = Math.floor(num / 10); 
        }
        res = Number(res);
        if(x < 0) res = -res;
        if(res > maxIntInteger || res < minIntInteger) return 0;
        return res;
    };
    

      

      

  • 相关阅读:
    PHP学习心得(八)——运算符
    PHP学习心得(九)——函数
    PHP学习心得(十)——控制结构
    PHP学习心得(七)——常量
    PHP学习心得(六)——变量
    PHP学习心得(五)——类型
    PHP学习心得(四)——基本语法
    PHP学习心得(三)——处理表单
    PHP学习心得(二)——实用脚本
    PHP学习心得(一)——简介
  • 原文地址:https://www.cnblogs.com/JesseyWang/p/12937760.html
Copyright © 2020-2023  润新知