*寒假水94——A == B ?

本文介绍了一种使用字符串类型来比较两个可能非常大的数的方法,并提供了一个C++实现示例。该方法首先将输入的数转换为字符串,然后通过去除末尾的零和小数点以及前导零来简化字符串,最后比较简化后的字符串来判断两数是否相等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

Inputeach test case contains two numbers A and B. 
Outputfor 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<string>  
#include<string.h>  
  
using namespace std;  
  
void bear(string &str)  
{  
    int len=str.length()-1;  
    if(strchr(str.c_str(),'.'))  
    {  
        while(str[len]=='0')  
        {  
            str.erase(len);  
            len--;  
        }  
        if(str[len]=='.')  
        {  
            str.erase(len);  
        }  
    }  
    while(str[0]=='0'&&str.length()>1)  
    {  
        str.erase(0,1);  
    }  
}  
  
int main()  
{  
    string a,b;  
    while(cin>>a>>b)  
    {  
        bear(a);  
        bear(b);  
        if(a.compare(b)==0) cout<<"YES"<<endl;  
        else cout<<"NO"<<endl;  
    }  
    return 0;  
}  

题解:输入的数据可能是很大很大很大的,所以定义为字符串型做比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值