蛤
蛤
蛤
第二次写做题报告就还写橙题吧!
话不多说先给出第一次四十分的代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
if(a.find('.')!=a.npos)
{
double sd;
stringstream ss;
ss<<a;
ss>>sd;
if(sd==0)
{
cout<<"0.0";
return 0;
}
int s=a.find('.');
string kkk;
kkk=a[0];
for(int i=1;i<s;i++)
{
kkk+=a[i];
}
string sc03;
sc03=kkk[kkk.length()-1];
for(int i=kkk.length()-2;i>=0;i--)
{
sc03+=kkk[i];
}
int len=sc03.length();
while(len>1&&sc03[len]==0)len--;
sc03+='.';
for(int i=0;i<=len+1;i++)
{
cout<<sc03[i];
}
string tp;
tp=a[s+1];
for(int i=s+2;i<a.length();i++)
{
tp+=a[i];
}
string tep;
tep=tp[tp.length()-1];
for(int i=tp.length()-2;i>=0;i--)
{
tep+=tp[i];
}
int le=tep.length();
while(le>1&&tep[le]==0)le--;
for(int i=0;i<=le;i++)
{
if(tep[i]!=' ')
cout<<tep[i];
}
return 0;
}
if(a.find('/')!=a.npos)
{
int s=a.find('/');
string kkk;
kkk=a[0];
for(int i=1;i<s;i++)
{
kkk+=a[i];
}
string sc03;
sc03=kkk[kkk.length()-1];
for(int i=kkk.length()-2;i>=0;i--)
{
sc03+=kkk[i];
}
int len=sc03.length();
while(len>1&&sc03[len]==0)len--;
stringstream ss;
ss<<sc03;
int p;
ss>>p;
if(p==0)
{
cout<<0;
}
else
for(int i=0;i<=len;i++)
{
cout<<sc03[i];
}
cout<<'/';
string tp;
tp=a[s+1];
for(int i=s+2;i<a.length();i++)
{
tp+=a[i];
}
string tep;
tep=tp[tp.length()-1];
for(int i=tp.length()-2;i>=0;i--)
{
tep+=tp[i];
}
int le=tep.length();
while(le>1&&tep[le]==0)le--;
for(int i=0;i<=le;i++)
{
cout<<tep[i];
}
return 0;
}
if(a.find('%')!=a.npos)
{
string kkk;
kkk=a[0];
for(int i=1;i<a.length()-1;i++)
{
kkk+=a[i];
}
string sc03;
sc03=kkk[kkk.length()-1];
for(int i=kkk.length()-2;i>=0;i--)
{
sc03+=kkk[i];
}
int len=sc03.length();
while(len>1&&sc03[len]==0)len--;
cout<<sc03;
cout<<'%';
return 0;
}
string kkk;
kkk=a[0];
for(int i=1;i<a.length();i++)
{
kkk+=a[i];
}
string sc03;
sc03=kkk[kkk.length()-1];
for(int i=kkk.length()-2;i>=0;i--)
{
sc03+=kkk[i];
}
int len=sc03.length();
while(len>1&&sc03[len]==0)len--;
cout<<sc03;
}
又臭又长,很多有关零的处理都不到位
经过一番沉♂思我突♂FA♂奇♂想:如果用stringstream把字符串转成数字再进行处理的话就不用考虑零的问题了
于是乎
#include<bits/stdc++.h>
using namespace std;
#define ll unsigned long long
int main()
{
string a;
cin>>a;
if(a.find('%')!=a.npos)
{
string kkk1="";
for(int i=0;i<a.length()-1;i++)
{
kkk1+=a[i];
}
stringstream p;
p<<kkk1;
ll po;
p>>po;
ll po1=0;
while(po)
{
po1=po1*10+po%10;
po/=10;
}
cout<<po1<<"%";
return 0;
}
if(a.find('.')!=a.npos)
{
int s=a.find('.');
string kkk1="",kkk2="";
for(int i=0;i<s;i++)
{
kkk1+=a[i];
}
for(int i=s+1;i<a.length();i++)
{
kkk2+=a[i];
}
stringstream sc1,sc2;
sc1<<kkk1;sc2<<kkk2;
ll sc3,sc4;
sc1>>sc3;sc2>>sc4;
if(sc3==0)
{
cout<<"0.";
}else
{
ll sc03=0;
while(sc3)
{
sc03=sc03*10+sc3%10;
sc3/=10;
}
cout<<sc03<<".";
}
if(sc4==0)
{
cout<<"0";
}else
{
ll sc04=0;
while(sc4)
{
sc04=sc04*10+sc4%10;
sc4/=10;
}
cout<<sc04;
}
return 0;
}
if(a.find('/')!=a.npos)
{
int s=a.find('/');
string kkk1="",kkk2="";
for(int i=0;i<s;i++)
{
kkk1+=a[i];
}
for(int i=s+1;i<a.length();i++)
{
kkk2+=a[i];
}
stringstream sc1,sc2;
sc1<<kkk1;sc2<<kkk2;
ll sc3,sc4;
sc1>>sc3;sc2>>sc4;
if(sc3==0)
{
cout<<"0/";
}else
{
ll sc03=0;
while(sc3)
{
sc03=sc03*10+sc3%10;
sc3/=10;
}
cout<<sc03<<"/";
}
if(sc4==0)
{
cout<<"0";
}else
{
ll sc04=0;
while(sc4)
{
sc04=sc04*10+sc4%10;
sc4/=10;
}
cout<<sc04;
}
return 0;
}
string kkk;
kkk="";
for(int i=0;i<a.length();i++)
{
kkk+=a[i];
}
stringstream ss;
ss<<kkk;
ll sc;
ss>>sc;
ll sc03=0;
while(sc)
{
sc03=sc03*10+sc%10;
sc/=10;
}
cout<<sc03;
}
这个想了将近两天的题就这样
AC了。。。