猜也能猜到,本题的数据不可能是简单到直接能保存进整型里。
它可能有10000位的长度,所以需要保存到字符串里。
比较的时候,需要注意的是:像0001.00与1是相同的。
它可能有10000位的长度,所以需要保存到字符串里。
比较的时候,需要注意的是:像0001.00与1是相同的。
#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;
}

本文介绍了一种用于比较超长数字字符串大小的算法实现,通过去除前导零和末尾不必要的零来简化比较过程,适用于长度可达万位的大数比较。
1503

被折叠的 条评论
为什么被折叠?



