您的位置:首页 > 其它

一道int范围的题

2016-09-12 22:49 381 查看
int reverse(int x) {

    int k = 0,temp = 0;
if(x < 0)
{
k = -x;
}
else
{
k = x;
}

    while(k)

    {
if(temp > 2147483647/10)
{
return 0;
}

        temp = temp*10 + k%10;
k/=10;

    }

if(x < 0)
{
return -temp;
}
return temp;

}

Submission Details

1031 / 1032 test cases passed.

Status: Wrong Answer

Submitted: 0 minutes ago

Input:

-2147483648

Output:

-126087180

Expected:

0

int reverse(int x) {

    int k = 0,temp = 0;
k = (x < 0)?x*-1:x;

    while(k)

    {

        if(temp > 2147483647/10)
{
return 0;
}

        temp = temp*10 + k%10;

k/=10;

    }

return x < 0?temp*-1:temp;

}

Submission Details

1031 / 1032 test cases passed.

Status: Wrong Answer

Submitted: 0 minutes ago

Input:

-2147483648

Output:

-126087180

Expected:

0

int reverse(int x)

{
bool isPos = x>0;

    if(!isPos)

    x = x* -1;

    int ans = 0, tmp = 0;

    while(x>0){

       if( (ans) > (2147483647/10)) return 0;// overflows

       ans = ans* 10 + x % 10;

            x /=10;

    }

    return isPos? ans: -1*ans;

}

Submission Details

1032 / 1032 test cases passed.

Status: Accepted

Runtime: 3 ms

Submitted: 0 minutes ago
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: