ACM 1081 A==B?给定两个数A和B(长度不超过100),如果它们相等则输出"YES",否则输出"NO".输入每组测试数据包含两个数A和B.输出对于每组测试数据,如果A和B相等,则输出"YES",否则输出"NO".样例输入\x0

来源:学生作业学帮网 编辑:学帮网 时间:2024/04/28 23:25:19

ACM 1081 A==B?
给定两个数A和B(长度不超过100),如果它们相等则输出"YES",否则输出"NO".
输入
每组测试数据包含两个数A和B.
输出
对于每组测试数据,如果A和B相等,则输出"YES",否则输出"NO".
样例输入
\x05\x05\x05
1 2
2 2
3 3
4 3
样例输出
\x05\x05\x05
NO
YES
YES
NO
#include
using namespace std;
int main()
{
int a,b;
while(cin>>a>>b)
{
if(a==b)
{
cout

这个题目中的数的长度最大是100,我们无法用普通的数据类型来存储,只能通过字符串存储来做比较.
下面是一份AC的代码,你参考下.
#include <stdio.h>
#include <string.h>

void A(char *s)
{
    int len = strlen(s);
    char *p = s + len - 1;
    if (strchr(s, '.'))
    while (*p == '0') *p-- = 0;
    if (*p == '.') *p = 0;
}

int main(void)
{
    char *pa, *pb;
    char a[100024], b[100024];

    while (scanf("%s%s", &a, &b) != EOF)
    {
        pa = a; pb = b;
        while (*pa == '0') pa++;
        while (*pb == '0') pb++;
        A(pa); A(pb);
        puts(strcmp(pa, pb) ? "NO" : "YES");
    }

    return 0;
}