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

Posted xiaofengqaq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#C++初学记录(A==B?##高精度)相关的知识,希望对你有一定的参考价值。

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?##高精度)的主要内容,如果未能解决你的问题,请参考以下文章

高精度与大整数

高精度与大整数

(记录)初学python篇:五

初学C语言,请教高手字符串拼接的问题。要求是将a与b拼接到c,a占前20位,b从第20位开始。我的代码如下:

高精度(综述)

SQL Select 语句的用法

(c)2006-2024 SYSTEM All Rights Reserved IT常识