程序笔记   发布时间:2022-07-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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.

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 @R_692_10586@l 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=@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,请注明来意。