//
//  LeetCode_7_ReverseInteger.cpp
//  arithmetic
//
//  Created by li on 2018/5/24.
//  Copyright © 2018年 li. All rights reserved.
//
//原题
//
//  Reverse digits of an integer.
//  Example1: x = 123, return 321
//  Example2: x = -123, return -321
//
//题目大意
//
//  输入一个整数对其进行翻转
//
//解题思路
//
//  通过求余数求商法进行操作。
//
//代码实现


#include "LeetCode_7_ReverseInteger.hpp"


int LeetCode_7_ReverseInteger::main(int argc, const char *argv[]) { 

    int res = LeetCode_7_ReverseInteger().reverse(123);
    cout<<"result:"<<res<<"int max :"<<INT_MAX<<endl;
    return 0;
}


int LeetCode_7_ReverseInteger::reverse(int x) { 

    int res =0;
    while ( x != 0) {
        if(abs(res) > INT_MAX / 10) return 0; //整数溢出返回0
        res = res * 10 + x % 10; //本次结果 = 上一次结果进位+小于10的余数
        x /= 10; //数据源进位
    }
    return res;
}
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐