RE请指教谢谢

P1307 [NOIP2011 普及组] 数字反转

追逐者 @ 2019-05-28 17:38:02

#include <iostream>
using namespace std;
int cf(int n){
    int sum=1;
    for(int i=1;i<=n;i++)
        sum*=10;
    return sum;
}
int main(){
    long long n;
    cin>>n;
    if(n<0)
    {
        n*=-1;
        cout<<'-';
    }
    while(n%10==0)
        n/=10;
    int l,t=n;
    while(t!=0)
        t/=10,l++;
    for(int i=0;i<l;i++){
        int w=n/cf(i)%10;
        cout<<w;
    }
    cout<<endl;
    return 0;
}

本地没问题


by WYXkk @ 2019-05-28 18:21:00

@追逐者 发现两个问题:1.l没有初始化;2.n=0会在第一个while死循环


by WYXkk @ 2019-05-28 18:23:33

@追逐者 改过来之后就A了,可能是l的初始化的问题,导致l越界或者变成奇怪的数。


by wjy2006 @ 2019-05-28 18:25:25

@追逐者

开O2后A了


by 追逐者 @ 2019-05-29 16:43:20

好的谢谢


|