#include<iostream>
#include<string>
using namespace std;
string treat(string s,int &e,int n){
int pos=0;
while(s.length()>0&&s[0]=='0'){
s.erase(s.begin());
}
if(s[0]=='.'){
s.erase(s.begin());
while(s.length()>0&&s[0]=='0'){
s.erase(s.begin());
e--;
}
}
else{
while(pos<s.length()&&s[pos]!='.'){
pos++;
e++;
}
if(pos<s.length()){
s.erase(s.begin()+pos);
}
}
if(s.length()==0){
e=0;
}
int num=0;
pos=0;
string result;
while(num<n){
if(pos<s.length()) result+=s[pos++];
else result+='0';
num++;
}
return result;
}
int main(){
int n;
string s1,s2,s3,s4;
cin>>n>>s1>>s2;
int e1=0,e2=0;
s3=treat(s1,e1,n);
s4=treat(s2,e2,n);
if(s3==s4&&e1==e2){
cout<<"YES"<<" 0."<<s3<<"*10^"<<e1<<endl;
}
else{
cout<<"NO"<<" 0."<<s3<<"*10^"<<e1<<" 0."<<s4<<"*10^"<<e2<<endl;
}
}
1060. Are They Equal (25)PAT甲级
最新推荐文章于 2025-08-31 21:57:01 发布
本文介绍了一种处理浮点数字符串的方法,通过去除前导零和小数点后的零来规范化浮点数,并确保两个浮点数在进行比较时具有相同的指数部分。此方法适用于需要精确比较浮点数值的场景。
325

被折叠的 条评论
为什么被折叠?



