nyoj_524_A-B Problem_201312012035
A-B Problem
- 描述
-
A+B问题早已经被大家所熟知了,是不是很无聊呢?现在大家来做一下A-B吧。
现在有两个实数A和B,聪明的你,能不能判断出A-B的值是否等于0呢?
- 输入
- 有多组测试数据。每组数据包括两行,分别代表A和B。 它们的位数小于100,且每个数字前中可能包含+,- 号。 每个数字前面和后面都可能有多余的0。 每组测试数据后有一空行。
- 输出
- 对于每组数据,输出一行。 如果A-B=0,输出YES,否则输出NO。
- 样例输入
-
1
1 1.0
2.0 - 样例输出
-
YES
NO - 来源
- hdu改编
#include <stdio.h>
#include <string.h>
#define MAX 100000 char str1[MAX+],str2[MAX+];
int a1[MAX+],a2[MAX+],b1[MAX+],b2[MAX+]; int bijiao(char *str1,char *str2)
{
int len1,len2;
int i,j,k,t;
for(i=;i<MAX+;i++)
a1[i]=a2[i]=b1[i]=b2[i]=;
len1=strlen(str1);
for(i=;i<len1;i++)
if(str1[i]=='.')
{t=i;break;}
if(i>=len1)
t=len1;
for(j=,i=t-;i>=;i--)
a1[j++]=str1[i]-'';
for(j=,i=t+;i<len1;i++)
a2[j++]=str1[i]-'';
len2=strlen(str2);
for(i=;i<len2;i++)
if(str2[i]=='.')
{t=i;break;}
if(i>=len2)
t=len2;
for(j=,i=t-;i>=;i--)
b1[j++]=str2[i]-'';
for(j=,i=t+;i<len2;i++)
b2[j++]=str2[i]-'';
if(len1==&&len2==)
return ;
for(i=;i<MAX;i++)
{
if(a1[i]!=||a2[i]!=||b1[i]!=||b2[i]!=)
break;
}
if(i>=MAX)
return ;
for(i=;i<MAX;i++)
{
if(a1[i]!=b1[i])
{
k=;
break;
}
}
if(i>=MAX)
{
for(i=;i<MAX;i++)
{
if(a2[i]!=b2[i])
{
k=;
break;
}
}
if(i>=MAX)
k=;
}
return k;
//puts(str1);
//puts(str2);
}
int main()
{
while(scanf("%s%s",str1,str2)!=EOF)
{
int t=,k;
//gets(str2);
//getchar();
if((str1[]>=''&&str1[]<='')&&(str2[]>=''&&str2[]<=''))
k=bijiao(str1,str2);
else if((str1[]>=''&&str1[]<='')&&(str2[]=='+'))
k=bijiao(str1,str2+);
else if((str2[]>=''&&str2[]<='')&&(str1[]=='+'))
k=bijiao(str1+,str2);
else if(str1[]==str2[])
k=bijiao(str1+,str2+);
else if(str1[]=='.'||str2[]=='.')
k=bijiao(str1,str2);
else
{
t=bijiao(str1+,str2+);
if(t==)
k=;
else
k=;
}
if(k)
printf("YES\n");
else
printf("NO\n");
}
return ;
}
//没考虑 (.1和 0.1)这组数据
/* 测试数据
0 -0
0 +0
123.123 +00123.12300
100.00 100
.1 0.1
000.000 0
123456789123456789
123456789123456789
1 1
000001000. 1000
+0 -000.000
.0 0
.0 0.
结果全是YES
这些测试数据如果过了基本差不多可以AC了 这都是WA出来的。。。。 */
和hdu2054类似,这题的测试数据更严格
nyoj_524_A-B Problem_201312012035的更多相关文章
随机推荐
- Python机器学习算法 — KNN分类
KNN简介 K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.KNN分类算法属于监督学习. 最简单最初级的分类器是将全部的训练 ...
- Android -----listView的重要属性
android:transcriptMode="alwaysScroll" android:cacheColorHint="#00000000" android ...
- 【Leetcode】474. Ones and Zeroes
Today, Leet weekly contest was hold on time. However, i was late about 15 minutes for checking out o ...
- 342 Power of Four 4的幂
给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂.示例:当 num = 16 时 ,返回 true . 当 num = 5时,返回 false.问题进阶:你能不使用循环/递归来解 ...
- Hadoop Hive概念学习系列之hive里的视图(十二)
不多说,直接上干货! 可以先,从MySQL里的视图概念理解入手 视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,与基本表不同,它是一个虚表.在数据库中,存放的只是视图的定义,而不存放视图包含的 ...
- Spring boot中的定时任务(计划任务)
从Spring3.1开始,计划任务在Spring中实现变得异常的简单.首先通过配置类注解@EnableScheduling来开启对计划任务的支持,然后再要执行的计划任务的方法上注释@Scheduled ...
- NSNotificationCenter 的使用详解
通常我们在 iOS 中发生什么事件时该做什么是由 Delegate 实现的,例如 View 加载完后会触发 viewDidLoad.Apple 还为我们提供了另一种通知响应方式,那就是 NSNotif ...
- 使用GCD验证码倒计时
__block int timeout = 60; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY ...
- 转 IDEA 解决代码提示功能消失
转载路径是 https://blog.csdn.net/hmily_hui/article/details/78213037 原文地址:https://github.com/Damao/Intell ...
- ARM架构与体系学习(二)——3级流水线
ARM架构与体系学习(二)——3级流水线 标签: 存储嵌入式汇编c 2012-04-18 00:44 5414人阅读 评论(4) 收藏 举报 分类: ARM7(16) 版权声明:本文为博主原创文章 ...