哪位大佬帮忙看看这是哪里错了。。。。。。

P1307 [NOIP2011 普及组] 数字反转

MOXCOOT @ 2020-10-30 20:21:40

#include<iostream>
using namespace std;
int main(){
    long long n;
    cin>>n;
    if(n>0){
        for(int i;n>0;i++){
            if(n%10==0){
                goto loop1;
            }
        cout<<n%10;
        loop1:n/=10;
        }       
    }
    else if(n<0){
        n=-n;
        cout<<"-";
        for(int i;n>0;i++){
            if(n%10==0){
                goto loop;
            }
        cout<<n%10;
        loop:n/=10;
        }       
    }
    else{
        cout<<"0";
    }
}

by devans @ 2020-10-30 20:26:13

试试输入:

-700700

好像把不该去掉的0也去掉了...


by devans @ 2020-10-30 20:29:08

#include<iostream>
using namespace std;
int main(){
    long long n;
    bool bb=1;
    cin>>n;
    if(n>0){
        for(int i;n>0;i++){
            if(n%10==0 and bb){
                goto loop1;
            }
            else bb=0;
            cout<<n%10;
            loop1:n/=10;
        }       
    }
    else if(n<0){
        n=-n;
        cout<<"-";
        for(int i;n>0;i++){
            if(n%10==0 and bb){
            goto loop;
        }
            else bb=0;
            cout<<n%10;
            loop:n/=10;
        }       
    }
    else{
        cout<<"0";
    }
}

by 微分几何 @ 2020-10-30 20:30:08

只去掉末尾的零,你把中间的零也去掉了


by MOXCOOT @ 2020-10-30 20:41:23

@Out_BoundS 啊,这个bb起什么作用呀。


by devans @ 2020-10-30 21:28:55

表示一旦反转时找到了一位有效数字,后面的所有0就不必删除了.


|