Subtask#1 RE

P1307 [NOIP2011 普及组] 数字反转

cza2023 @ 2023-11-10 22:20:12

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    string s="";
    cin>>n;
    if(n<0)s="-";
    n=abs(n);
    while(n!=0){
        s+=n%10+'0';
        n/=10;
    }
    cout<<stoi(s);
}

by xiaoheige @ 2023-11-13 14:09:51

@cza2023 你好,在你的这段代码中,你运用了字符串累加的方式,最后再将字符串转换成整型。但是你忽略了一个特殊情况,当n==0时,答案应是0。而这段代码的while循环的条件是n!=0时进入,就会导致没有进入循环,进一步导致字符串s为空,所以RE了。你可以加个n==0时的特判,AC代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    string s="";
    cin>>n;
    if(n==0){
    cout<<0;
    return 0;
    }     
    if(n<0)s="-";
    n=abs(n);
    while(n!=0){
        s+=n%10+'0';
        n/=10;
    }
    cout<<stoi(s);
}

by cza2023 @ 2023-11-13 21:33:11

@xiaoheige 感谢!已经AC了


|