80分求助

P1307 [NOIP2011 普及组] 数字反转

lilexin @ 2023-09-28 16:51:09

#include<bits/stdc++.h>
using namespace std;
string a;
int b=0,c=1;
int main(){
    cin>>a;
    int len=a.size();
    if(a[0]=='-'){
            cout<<"-";
        }
    if(a[0]=='0'||(a[0]=='-'&&a[1]=='0'&&a[2]=='0')){
        cout<<"0";
    }
    for(int i=len-1;i>=0;i++){
        if(a[i]!='0'){
            break;
        }
        else{
            b++;
        }
    }
    if(a[0]=='-'){
        for(int i=1;i<=len-1;i++){
            if(a[i]!='0'){
                break;
            }
            else{
                c++;
            }
        }
    }
    else{
        for(int i=0;i<=len-1;i++){
            if(a[i]!='0'){
                break;
            }
            else{
                c++;
            }
        }
    }
    for(int i=len-1;i>=0;i++){
        if(a[i]!='0'){
            break;
        }
        else{
            b++;
        }
    }
    for(int i=len-1-b;i>=c;i--){
        if(a[i]!='-'){
            cout<<a[i];
        }
    }
}

by liu_le_chen @ 2023-09-28 17:06:17

你少了一个特判,如果输入的数字只有一个,那么直接输出(求一关!!!)@lilexin


by MaLeBron @ 2023-09-29 10:50:19

#include<bits/stdc++.h>
using namespace std;
int main(){
    int b,d,a,c,e;
    cin>>a;
    while(a){
        c=c*10+a%10;
        a/=10;
    }
    cout<<c;
    return 0;
} 

by lilexin @ 2023-10-05 21:39:16

@封禁用户 @q_w_qnoi

感谢你们的修改,我已经对了


|