做一道题吧-实现数字翻转

191 阅读1分钟

实现:

输入 123456

输出 654321

如果数字溢出,就返回0

好啦,开始吧~

解题思路

举例 123->321

可以使用这个公式做到翻转:

第一步: 0 * 10 + 3 = 3

第二部:3 * 10 + 2 = 32

第三部: 32 * 10 + 1 = 321

上面3、2、1 就是余数

代码

function reverseNumber(originalNumber){
    let result = 0
    while(originalNumber>0){
        let remainder = originalNumber % 10
        // 溢出判断,返回0
        if(!Number.isSafeInteger(result) || !Number.isSafeInteger(result * 10) || !Number.isSafeInteger(result * 10 + remainder)){
            return 0 
        } 
        // 解题思路中公式,不断更新result
        result = result * 10 + remainder 
        originalNumber = Number.parseInt(originalNumber / 10)
    }
    return result
}

在控制台打出结果:

reverseNumber(123)
321
reverseNumber(2990474529917009)
0