#のC ++初心者レコード(==のB?##高精度)

問題の説明は、
AがBに等しい場合に二つの数AとBを与える、あなたが「YES」印刷する必要があります、または印刷「NO」。

入力
各テストケースは、2つの数AおよびBが含まれてい

出力
それぞれのケースについては、AがBに等しい場合は、「YES」、または印刷「NO」印刷する必要があります。

サンプル入力
1 2
2 2
3 3
4 3

サンプル出力
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");
    }
    }

問題の意味を理解し
、問題を解決するときに、この5つは、それが間違って見つけるまでその質問が潜在的な問題だけでなく、偉大な浮動小数点データとしてあると0.111000の問題を解決していないサインです。最初は、そのためかどうかを決定しなければなりません0小数点以下の桁数と小数点の後に過剰分を除去します。

おすすめ

転載: www.cnblogs.com/xiaofengqaq/p/10929980.html