讨论/题目交流/关于整数反转代码问题(新手求解答)/
关于整数反转代码问题(新手求解答)
class Solution {
public:
    int reverse(int x) {
        vector<int>num;
        float temp=0.0;
        while(x!=0){
            num.push_back(x%10);
            x=x/10;
        }
        for(int i=0;i<num.size();i++){
            temp=temp*10+num[i];
        }
        if(temp<pow(-2,31)||temp>pow(2,31)-1) return 0;
        return temp;
    }
};

此处给出测试用例-2147483412时,输出的是-2143847424,希望各位能给出解答。

展开讨论
HQU_LH发起于 2020-04-12
共 1 个讨论

首先这个是整数反转。你为了扩大范围舍弃int是对的。但是也不能用float接受temp吧,float是浮点数,浮点数计算整数是有误差的。你把float换成long/long int/long long应该就好了。

1