码迷,mamicode.com
首页 > 编程语言 > 详细

#C++初学记录(A==B?##高精度)

时间:2019-05-27 13:24:21      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:sam   因此   space   pac   cst   main   har   存在   include   

Problem Description
Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".

Input
each test case contains two numbers A and B.

Output
for each case, if A is equal to B, you should print "YES", or print "NO".

Sample Input
1 2
2 2
3 3
4 3

Sample Output
NO
YES
YES
NO

正确代码

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main(){
    char a[100000],b[100000];
    while(cin>>a>>b){
    int Y_a=0,Y_b=0;
    for(int i=0;i<strlen(a);i++)
        if(a[i]=='.'){
            Y_a=1;
            break;
        }
    for(int i=0;i<strlen(b);i++)
        if(b[i]=='.'){
            Y_b=1;
            break;
        }
    if(Y_a){
        for(int i=strlen(a)-1;i>=0;i--){
            if(a[i]=='0'){
                a[i]=0;
            }
            else if(a[i]=='.'){
                a[i]=0;
                break;
           }
            else break;
        }
    }
//    if(Y_a) {
//        cout<<"!!!"<<a<<' '<<a[1]<<endl;
//    }    if(Y_b){
        for(int i=strlen(b)-1;i>=0;i--)
            if(b[i]=='0'){
                b[i]=0;
            }
            else if(b[i]=='.'){
                b[i]=0;
                break;
            }
            else break;
            strcmp(a,b)?puts("NO"):puts("YES");
    }
    }

题意理解
起初做这道题的时候以为这是一个签到题,直到wrong了五次发现这存在着潜在的问题,既是浮点型如0.111000和数据极大的问题没有解决,因此应该进行判断是否带有小数点并且去掉小数点后多余的0。

#C++初学记录(A==B?##高精度)

标签:sam   因此   space   pac   cst   main   har   存在   include   

原文地址:https://www.cnblogs.com/xiaofengqaq/p/10929980.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!