ASOUL_Official @ 2020-06-07 11:14:35
思路应该没错吧……
但是本地测试的时候数据后面会莫名其妙出现一个%(macOS 10.15.5,clang 11.0.3)
在在线IDE测试的时候会在数据前面出现一个%00(输进浏览器地址栏得到的字符)
是数据类型的锅还是我学艺不精(
123
321%
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main(){
string a;
int i;
cin>>a;
if(a[0]=='-'){
cout<<"-";
for(i=a.length()-2;i>=0;i--){
if(a[1]==0){
continue;
}
cout<<a[i];
}
}else{
for(i=a.length()-1;i>=0;i--){
if(a[0]==0){
continue;
}
cout<<a[i];
}
}
return 0;
}
by ASOUL_Official @ 2020-06-07 11:16:56
而且比较惨的就是没去0(
by Meatherm_test @ 2020-06-07 11:19:08
捕捉 dd 头子
by Meatherm_test @ 2020-06-07 11:23:29
@lancdn 首先修正了下语法和细节错误
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main(){
string a;
int i;
cin>>a;
if(a[0]=='-'){
cout<<"-";
for(i=a.length()-1;i;i--){
if(a[i]=='0'){ // 是 '0' 不是 0
continue;
}
cout<<a[i];
}
}else{
for(i=a.length()-1;i>=0;i--){
if(a[i]=='0'){
continue;
}
cout<<a[i];
}
}
return 0;
}
思路的话,有点问题。想想 2020 会被反转成什么?
by Phykyer @ 2020-06-07 11:25:13
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main(){
string a;
int i;
cin>>a;
if(a[0]=='-'){
cout<<"-";
bool pd = 0;
for(i=a.length()-1;i>=1;i--){
if(a[i]=='0' && pd == 0){
continue;
}
pd = 1;
cout<<a[i];
}
}else{
bool pd = 0;
for(i=a.length()-1;i>=0;i--){
if(a[i]=='0' && pd == 0){
continue;
}
pd = 1;
cout<<a[i];
}
}
return 0;
}
这样就行,问题挺多的,自己看看吧
by Phykyer @ 2020-06-07 11:28:24
@lancdn
by andyli @ 2020-06-07 11:28:36
@lancdn
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main(){
string a;
int i;
cin>>a;
if (a == "0") return cout<<"0",0;
while (!a.empty() && a.back() == '0') a.pop_back();
if(a[0]=='-'){
cout<<"-";
for(i=a.length()-1;i>=1;i--){
cout<<a[i];
}
}else{
for(i=a.length()-1;i>=0;i--){
cout<<a[i];
}
}
return 0;
}
by andyli @ 2020-06-07 11:29:57
@Phykyer 当
by Phykyer @ 2020-06-07 11:31:45
emmm确实没想到,就直接吧错的地方改了,但是这题好像也没有这个点就是了
by ASOUL_Official @ 2020-06-08 17:10:47
@andyli pop_back
?
by andyli @ 2020-06-09 14:35:51
@lancdn 从字符串移除末字符