9,10测试点过不了求调

P1307 [NOIP2011 普及组] 数字反转

显然你 `if(n[i]=='0'&&n[i-1]!='0'&&n[i+1]!='0'&&i!=n.size()-1)` 是不行的,比如所 `1002`,你的输出是 `21`,但应该是 `2001`,而且输出的时候比如 `21000` 你应该定义一个变量如果他输出了非`0`的数字了,那你就可以输出`0`了,我把你的改了改 ```cpp #include<iostream> #include<string> using namespace std; int main(){ string n; cin>>n; if(n[0]=='-'){//对于负数的输出 cout<<'-'; int res = 0; for(int i=n.size()-1;i>0;i--){ if(n[i]=='0' && res){ continue; } else{ res++; cout<<n[i]; } } } else if(n[0]=='0'){//对于0的输出 cout<<'0'<<endl; return 0; } else{//对于正数的输出 int res = 0; for(int i=n.size()-1;i>=0;i--){ if(n[i]=='0'&&res){ continue; } else{ res++; cout<<n[i]; } } } return 0; } ```
by WA_QJ @ 2024-01-10 14:04:32


@EgoStrip,代码贴错了,应该是这个 ```cpp #include<iostream> #include<string> using namespace std; int main(){ string n; cin>>n; if(n[0]=='-'){//对于负数的输出 cout<<'-'; int res = 0; for(int i=n.size()-1;i>0;i--){ if(n[i]=='0' && !res){ continue; } else{ res++; cout<<n[i]; } } } else if(n[0]=='0'){//对于0的输出 cout<<'0'<<endl; return 0; } else{//对于正数的输出 int res = 0; for(int i=n.size()-1;i>=0;i--){ if(n[i]=='0'&&!res){ continue; } else{ res++; cout<<n[i]; } } } return 0; } ```
by WA_QJ @ 2024-01-10 14:06:38


@[EgoStrip](/user/964081)
by WA_QJ @ 2024-01-10 14:07:01


@[WA_QJ](/user/938933) 感谢感谢
by EgoStrip @ 2024-01-12 18:30:15


|