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.
Input Specification:
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 total digit number is less than 100.
Output Specification:
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.
Sample Input 1:
3 12300 12358.9
Sample Output 1:
YES 0.123*10^5
Sample Input 2:
3 120 128
Sample Output 2:
NO 0.120*10^3 0.128*10^3
#include<bits/stdc++.h> using namespace std; const int maxn=1010; int main(){ int n; cin>>n; string a,b; cin>>a>>b; int lena=0,lenb=0; for(int i=0;i<a.size();i++){ if(a[i]=='.'){ break; } else{ lena++; } } for(int i=0;i<b.size();i++){ if(b[i]=='.'){ break; } else{ lenb++; } } string suba=""; for(int i=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=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 0; }