为什么超时了?(所有检测点都正确)

P1307 [NOIP2011 普及组] 数字反转

KangarooGao @ 2023-10-21 00:17:26

#include <iostream>
#include<cmath>
using namespace std;

int main( )
{
    long int a,i=0,b=0;
    cin>>a;
    if(!a)
    cout<<0;
    for(i=0;;i++)
    {
        if(!(a%10))
            a=a/10;
        else
            break;
    }
    if (a<0){
        cout<<'-';
        for(i=1;;i++)
        {
            b=a%10;
            cout << -b;
            a=a/10;
            if(!a)
                break;
        }
    }
    else{
        for(i=1;;i++)
        {
            b=a%10;
            cout << b;
            a=a/10;
            if(!a)
                break;
        }
    }
}

by zhang_feng_rui @ 2023-10-21 06:51:54

如果输入是0呢?

程序就直接卡死了

解决方法:

if(!a){
    cout<<0;
    return 0;
}

改一下即可AC


by KangarooGao @ 2023-10-21 08:54:44

确实是这样,谢谢!


|