数字反转tj
2024-07-04 20:21:25
发布于:浙江
21阅读
0回复
0点赞
没啥好说,纯模拟
但是!!!
一定一定一定要注意那些小bug!!!!!!!!!!(被骗了无数遍了)
如果你总是错,建议试试以下数据:
0001
00
/
1230
00/1230
00.00
00.00
000000
12345678912345678912
12345678912345678912
1234567891011121314%
19
0%
20
0000
1230000
000/123
0/123
如果都能对的话就能AC了
CODE:
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
int len=s.size();
int p1=s.find('.');
int p2=s.find('/');
int p3=s.find('%');
if (p1!=-1){
string left=s.substr(0,p1),right=s.substr(p1+1);
int llen=left.size();
while (left[llen-1]=='0' && llen!=1){
llen-=1;
}
for (int i=llen-1;i>=0;--i){
cout<<left[i];
}
cout<<".";
int z=0;
while (right[z]=='0' && z!=right.size()-1){
z+=1;
}
for (int i=right.size()-1;i>=z;--i){
cout<<right[i];
}
}else if (p2!=-1){
string left=s.substr(0,p2),right=s.substr(p2+1);
int llen=left.size(),rlen=right.size();
while (left[llen-1]=='0' && llen!=1){
llen-=1;
}
for (int i=llen-1;i>=0;--i){
cout<<left[i];
}
cout<<"/";
while (right[rlen-1]=='0' && rlen!=1){
rlen-=1;
}
for (int i=rlen-1;i>=0;--i){
cout<<right[i];
}
}else if (p3!=-1){
while (s[len-2]=='0' && len!=2){
len-=1;
}
for (int i=len-2;i>=0;--i){
cout<<s[i];
}
cout<<"%";
}else{
while (s[len-1]=='0' && len!=1){
len-=1;
}
for (int i=len-1;i>=0;--i){
cout<<s[i];
}
}
return 0;
}
这里空空如也
有帮助,赞一个