1060. Are They Equal (25)

来源:互联网 发布:很火excuse me网络意思 编辑:程序博客网 时间:2024/05/17 16:44
#include<cstdio>#include<iostream>#include<string>using namespace std;int N;string deal(string s1,int &e1){  int k=0;  while(s1[0]=='0' && s1.length()>0)  {    s1.erase(s1.begin());  }  if(s1[0]=='.')  {    s1.erase(s1.begin());    while(s1[0]=='0' && s1.length()>0)    {      s1.erase(s1.begin());      e1--;    }  }  else  {    while(k<s1.length() && s1[k]!='.')  //找小数点    {      k++;      e1++;    }    if(k<s1.length())    {      s1.erase(s1.begin()+k);     //去小数点    }  }  if(s1.length()==0)    e1 = 0;  int num=0;  k = 0;  string res;  while(num<N)  {    if(k<s1.length())      res += s1[k++];    else      res += '0';    num++;  }  return res;}int main(){  string s1,s2,s3,s4;  int e1=0,e2=0;  cin>>N>>s1>>s2;  s3 = deal(s1,e1);  s4 = deal(s2,e2);  if(s3 == s4 && e1 == e2)    cout<<"YES 0."<<s3<<"*10^"<<e1<<endl;  else    cout<<"NO 0."<<s3<<"*10^"<<e1<<" 0."<<s4<<"*10^"<<e2<<endl;  return 0;}

0 0