RT 代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin>>a;
int x;
char s1,s2;
for(int i=0;i<a.size();i++)
{
if(a[i]=='M'||a[i]=='K'||a[i]=='G'||a[i]=='B')
{
x=i;
s1=a[i];
break;
}
}
for(int i=0;i<a.size();i++)
{
if(a[i]=='M'||a[i]=='K'||a[i]=='G'||a[i]=='B')
{
s2=a[i];
break;
}
}
int shu[4]={0};
for(int i=0;i<a.size();i++)
{
if(a[i]=='M'||a[i]=='K'||a[i]=='G'||a[i]=='B')
{
break;
}
else
{
shu[i]=a[i]-'0';
}
}
int ss=0;
int wz;
for(int i=3;i>=0;i--)
{
if(shu[i]!=0)
{
wz=i;
break;
}
}
for(int i=0;i<=wz;i++)
{
ss+=shu[i]*pow(10,wz-i);
}
long double GB,MB,KB,B;
if(s1=='G')
{
GB=ss;
MB=GB*1.0/1024;
KB=MB*1.0/1024;
B=KB*1.0/1024;
}
if(s1=='M')
{
GB=MB*1.0*1024;
MB=ss;
KB=MB*1.0/1024;
B=KB*1.0/1024;
}
if(s1=='K')
{
GB=MB*1.0*1024;
MB=KB*1.0*1024;
KB=ss;
B=KB*1.0/1024;
}
if(s1=='B')
{
GB=MB*1.0*1024;
MB=KB*1.0*1024;
KB=B*1.0*1024;
B=ss;
}
if(s2=='G')
{
cout<<fixed<<setprecision(6)<<GB<<endl;
}
if(s2=='M')
{
cout<<fixed<<setprecision(6)<<MB<<endl;
}
if(s2=='K')
{
cout<<fixed<<setprecision(6)<<KB<<endl;
}
if(s2=='B')
{
cout<<fixed<<setprecision(6)<<B<<endl;
}
}