大佬教程收集整理的这篇文章主要介绍了1060 Are They Equal (25 分),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered equal since they are both saved as 0 with simple chopping. Now given the number of significant digits on a machine and two float numbers, you are supposed to tell if they are treated equal in that machine.
Each input file contains one test case which gives three numbers N, A and B, where N (<) is the number of significant digits, and A and B are the two float numbers to be compared. Each float number is non-negative, no greater than 1, and that its @R_692_10586@l digit number is less than 100.
For each test case, print in a line YES
if the two numbers are treated equal, and then the number in the standard form 0.d[1]...d[n]*10^k
(d[1]
>0 unless the number is 0); or NO
if they are not treated equal, and then the two numbers in their standard form. All the terms must be separated by a space, with no extra space at the end of a line.
Note: Simple chopping is assumed without rounding.
3 12300 12358.9
YES 0.123*10^5
3 120 128
NO 0.120*10^3 0.128*10^3
#include<bits/stdc++.h> using namespace std; const int maxn=@H_801_154@1010; int main(){ int n; cin>>n; String a,b; cin>>a>>b; int lena=@H_801_154@0,lenb=@H_801_154@0; for(int i=@H_801_154@0;i<a.size();i++){ if(a[i]=='.'){ break; } else{ lena++; } } for(int i=@H_801_154@0;i<b.size();i++){ if(b[i]=='.'){ break; } else{ lenb++; } } String suba=""; for(int i=@H_801_154@0;i<a.size();i++){ if(a[i]!='.'&&suba.size()<n){ suba+=a[i]; } } while(suba.size()<n){ suba+='0'; } String subb=""; for(int i=@H_801_154@0;i<b.size();i++){ if(b[i]!='.'&&subb.size()<n){ subb+=b[i]; } } while(subb.size()<n){ subb+='0'; } if(a=="0"){ cout<<"NO"<<" "<<"0"<<" "; cout<<"0."<<subb<<"*10^"<<lenb<<endl; } else if(b=="0"){ cout<<"NO"<<" "; cout<<"0."<<suba<<"*10^"<<lena<<endl; cout<<"0"<<" "; } else if(subb==suba&&lena==lenb){ cout<<"YES"<<" "; cout<<"0."<<suba<<"*10^"<<lena<<endl; } else{ cout<<"NO"<<" "; cout<<"0."<<suba<<"*10^"<<lena<<" "; cout<<"0."<<subb<<"*10^"<<lenb<<endl; } return @H_801_154@0; }
明天修改!
以上是大佬教程为你收集整理的1060 Are They Equal (25 分)全部内容,希望文章能够帮你解决1060 Are They Equal (25 分)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。