求大神调错

P1307 [NOIP2011 普及组] 数字反转

yuki_lyq @ 2024-08-11 17:09:53

#include<iostream>
using namespace std;
long long a;
bool flag;
int main(){
    cin>>a;
    if(a==0){
        cout<<0;
        return 0;
    }
    if(a<0){
        cout<<'-';
        a=0-a;
    }
    while(a){
        if(a%10) cout<<a%10;
        a/=10;
    }
    return 0;
}

by ATION001 @ 2024-08-11 17:16:25

@yuki_lyq

这就可以hack 掉好吧。

我的代码:

代码

#include<bits/stdc++.h>
using namespace std;
long long to_int(string f){//去前导零
    long long sum=0;
    for(auto x:f){
        sum=sum*10+(x-'0');
    }
    return sum;
}
string s;
int main(){
    cin>>s;
    if(s[0]=='-'){//为负数
        string p=s.substr(1,s.size());//把-去掉
        reverse(p.begin(),p.end());
        cout<<'-'<<to_int(p);
    }else{
        reverse(s.begin(),s.end());//反转
        cout<<to_int(s);
    }
}

by are_you_sure @ 2024-08-11 17:18:27

#include<iostream>
#include<cstring>
using namespace std;
int main(){
    string a;
    bool f=0,qd0=1;
    cin>>a;
    if(a[0]=='-'){
        cout<<'-';
        f=1;
    }
    if(a.length()==1){
        cout<<a;
    }
    for(int i=(int)a.length()-1;i>=0;i--){
        if(a[i]-'0'){
            qd0=0;
        }
        if(qd0 || a[i]=='-'){
            continue;
        }
        cout<<a[i];
    }
}

by ATION001 @ 2024-08-11 17:19:45

@yuki_lyq 你的代码:

代码

#include<iostream>
using namespace std;
long long a;
bool flag;
int main(){
    cin>>a;
    if(a==0){
        cout<<0;
        return 0;
    }
    if(a<0){
        cout<<'-';
        a=0-a;
    }
    while(a){
        if((!(a%10))&&!flag){
            a/=10;
            continue;
        }
        if(a%10){
            flag=1;
        }
        cout<<a%10;
        a/=10;
    }
    return 0;
}

by are_you_sure @ 2024-08-11 17:19:48

@yuki_lyq @yuki_lyq @yuki_lyq @yuki_lyq @yuki_lyq @yuki_lyq


by ATION001 @ 2024-08-11 17:20:35

你的程序为0就不输出了,但没考虑它在最外面还是在数字中间。


by are_you_sure @ 2024-08-11 17:20:55

sorry,电脑卡了,点一下没出来,然后多点了几下(bushi


by ATION001 @ 2024-08-11 17:42:09

.


by yuki_lyq @ 2024-08-11 17:50:14

@are_you_sure @ATION001 谢大神,但我想知道我是哪里没判断到?


by ATION001 @ 2024-08-11 21:07:21

@yuki_lyq 你直接把不为0的情况才输出,而实际上中间的0也需要输出(去前导零不是把所有0都去掉)。


|