PAT A1060 are they equal (25)

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>


using namespace std;
int main(){
string a,b;
int n,p1,p2,len1,len2;
scanf("%d",&n);
cin>>a;
cin>>b;
len1=a.length();
len2=b.length();
int i=0;
if(a.find('.')!=string::npos){
p1=a.find('.');
a.erase(p1,1);
len1--;
}else p1=len1;

if(b.find('.')!=string::npos){
p2=b.find('.');
b.erase(p2,1);
len2--;
}
else p2=len2;
while(a[0]=='0') {
a.erase(a.begin());
p1--;
}
while(b[0]=='0'){
b.erase(b.begin());
p2--;
}
int s = a.length();
if(s == 0){
a[0]='0';
p1=0;
}
if(s == 0){
b[0]='0';
p2=0;
}
len1=a.length();
len2=b.length();
if(n<len1){
a.erase(a.begin()+n,a.end());
}else{
for(i=len1;i<n;i++) a.insert(i,"0");
}
if(n<len2){
b.erase(b.begin()+n,b.end());
}else{
for(i=len2;i<n;i++) b.insert(i,"0");
}
if(a.substr(0,n)== b.substr(0,n) && p1==p2){
printf("YES 0.");
cout<<a;
printf("*10^%d",p1);
}
else{
printf("NO 0.");
cout<<a;
printf("*10^%d 0.",p1);
cout<<b;
printf("*10^%d",p2);
}
system("pause");
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值