90分求助 #13#15过不去

P1553 数字反转(升级版)

其实你这样写不好 建议写个函数 用来反转的,那样代码看上去更简洁 xxs程序猿正在为您改写代码ing,稍等
by HuaJunL @ 2023-06-26 21:09:04


```cpp #include<bits/stdc++.h> using namespace std; string turn(string s,int len,int start) { string ans=""; int flag=0; for(int i=len-1; i>=start; i--) { if(flag==0&&s[i]=='0')continue; flag=1; ans+=s[i]; } if(flag==0)return "0"; return ans; } int main() { string s;//输入的字符串 cin>>s; int flag=-1;//记录符号的下标 char c;//记录符号 int len=s.length();//长度 for(int i=0; i<len; i++) { if(s[i]<'0'||s[i]>'9') { flag=i; c=s[i]; } } if(flag==-1) { cout<<turn(s,len,0); return 0; } if(c=='%'){ cout<<turn(s,len-1,0)<<c; return 0; } if(c=='.') { cout<<turn(s,flag,0)<<c; int k=flag+1; while(s[k]=='0')k++; cout<<turn(s,len,k); return 0; } if(c=='/'){ cout<<turn(s,flag,0)<<c<<turn(s,len,flag+1); } return 0; } ``` 这是代码 务必不要抄袭 尽量自己打 # **求关注!!!QWQ**
by HuaJunL @ 2023-06-26 21:33:20


@[Darling_Fz](/user/732497)
by HuaJunL @ 2023-06-26 21:33:44


```cpp #include<bits/stdc++.h> using namespace std; string turn(string s,int end,int start) { string ans="";//表示回答 int flag=0;//去零的标记 for(int i=end-1; i>=start; i--) { if(flag==0&&s[i]=='0')continue;//相当于排前面的零 //这时候就要问了:如果小数的浮点怎么办?这个是去后面的0,让它反转后保证前面的0要去掉,可是小数点可是还要去反转后那个数字后面的零,到底怎么办呢? //这个start就是为了限制它反转的空间,等会儿会把小数部分前面的零的下标顶掉 flag=1; ans+=s[i]; } if(flag==0)return "0";//如果flag==0,那么说明整个字符串都是零,所以要特判,否则返回的就是空(别问我怎么知道的) return ans; } int main() { string s;//输入的字符串 cin>>s; int flag=-1;//记录符号的下标 char c;//记录符号 int len=s.length();//长度 for(int i=0; i<len; i++) { if(s[i]<'0'||s[i]>'9') { flag=i;//记录符号的下标 c=s[i];//记录符号 } } if(flag==-1) {//说明他是个平平无奇的整数,直接反 cout<<turn(s,len,0);//从零开始,到len结束 return 0; } if(c=='%'){//如果是百分数 cout<<turn(s,len-1,0)<<c;//这个的end就要往前压一个,因为最后一个是百分号 return 0; } if(c=='.') {//如果是小数(最麻烦) cout<<turn(s,flag,0)<<c;//首先是输出小数点前面的数字的反转,这个简单,直接0~flag即可 int k=flag+1;//临时记录压缩start的变量 while(s[k]=='0')k++;//表示小数点后面的零的下标都要顶掉 cout<<turn(s,len,k);//从k~len输出即可 return 0; } if(c=='/'){ cout<<turn(s,flag,0)<<c<<turn(s,len,flag+1);//这个简单了,直接0~flag和flag+1~len反转就行了 } return 0; } ``` 新版 有注释
by HuaJunL @ 2023-06-26 21:53:40


@[iamnotsoNB](/user/756988) 谢谢 看懂啦
by Darling_Fz @ 2023-06-27 18:43:06


6
by bcjs @ 2023-07-05 18:28:02


|