1060 Are They Equal
作者:互联网
题意:给定两个实数,为他们的科学计数法数是否相等,精确到小数点后n位
#include<iostream>
using namespace std;
int n;
void f(string &s,int &u) {
u=0;
int len=s.size();
while(u<len&&s[u]!='.') u++;
if(u==len) {
int t=u;
if(s=="0") u=0;
for(int i=0; i<n-t; i++) {
s.push_back('0');
}
} else {
int w=0;//找到的第一个不为零的位置
while(w<len&&(s[w]=='0'||s[w]=='.')) w++;
if(w==len) w=u;
s.erase(u,1);
while(s[0]=='0') s.erase(0,1);
len=s.size();
for(int i=0; i<n-len; i++) {
s.push_back('0');
}
if(u<w) u=u-w+1;//纠正形如0.00000023=0.23*10^-6
else u=u-w;
}
s="0."+s.substr(0,n);
}
int main() {
string s1,s2;
cin>>n>>s1>>s2;
int u1=0,u2=0;
f(s1,u1);
f(s2,u2);
if(u1==u2 && s1==s2) {
cout<<"YES "<<s1<<"*10^"<<u1;
} else {
cout<<"NO "<<s1<<"*10^"<<u1<<" "<<s2<<"*10^"<<u2;
}
return 0;
}
江楚郎(已婚 发布了298 篇原创文章 · 获赞 15 · 访问量 1万+ 私信 关注
标签:int,1060,s1,u1,Equal,u2,They,s2,计数法 来源: https://blog.csdn.net/qq_40991687/article/details/104094288