##### 12、 转化为科学计数法✔
pos = s.find('.');去除小数点;
#include<iostream> //科学计数法 ,N表示现实多少位
using namespace std; //先去掉前置0 (如果是0.004这种)还需要判断后继续去前置0
//之后分别计算数字部分和指数部分就行了
string solve(int N,string s){
int exp=0;
while(s.size() >0 && s[0]=='0'){
s.erase(s.begin());
}
if(s[0] =='.'){ //去掉前导0是小数点,说明s后面是小数
s.erase(s.begin());
while(s.size() >0 && s[0]=='0'){
s.erase(s.begin());
exp--;
}
}
else{ //说明是整数部分
int i=0;
for( ;i<s.size() && s[i]!='.';i++){
exp++;
}
if(i<s.size()){
s.erase(s.begin()+i);
}
//删除这个小数点即可,得到想要的整个数字部分。因为咱们指数已经确定了
//或者你在后面读取的时候对小数点进行讨论,但可能更麻烦
}
if(s.size()==0) exp=0;
//已经将字符串处理完,现在仅包含数字部分(指数已确定所以不用管),且为空的话,重新更新指数为0.
string ans="";
for(int i=0,k=0;k<N;i++,k++){ //补0操作
if( i <s.size() ) ans+=s[i]; //如果字符串没结束,赋值
else ans+='0'; // 如果结束了,补0
}
ans="0."+ans+"*10^"+to_string(exp);
return ans;
}
int main()
{
int N;
string A,B,resA,resB;
cin>>N>>A>>B;
resA = solve(N,A);
resB = solve(N,B);
if(resA==resB)
cout<<"YES "<<resA<<endl;
else
cout<<"NO "<<resA<<" "<<resB<<endl;
return 0;
}