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的更多相关文章
随机推荐
- [Swift通天遁地]三、手势与图表-(12)创建复合图表:包含线性图表和柱形图表
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- RHEL6.5安装成功ORACLE11GR2之后,编写PROC程序出错解决方法
1. proc: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: N ...
- 题解报告:hdu 2647 Reward(拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 Problem Description Dandelion's uncle is a boss ...
- 题解报告:hdu 3790 最短路径问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起 ...
- Java保存错误日志信息
我们平时在撸代码的时候,有时候需要将某个代码块的具体错误信息保存到数据库或文件中,以便日后方便快速的查找问题. 使用e.printStackTrace(),我们可以将信息保存在具体的变量中,然后写入数 ...
- 338 Counting Bits Bit位计数
给定一个非负整数 num. 对于范围 0 ≤ i ≤ num 中的每个数字 i ,计算其二进制数中的1的数目并将它们作为数组返回.示例:比如给定 num = 5 ,应该返回 [0,1,1,2,1,2] ...
- js的toFixed解惑
js中的toFixed,C#中的Math.round都是按照银行家算法的定义来算的,这里只拿js作参考,各个浏览器的计算方式并不一样,先看一张图,对比参数很容易就发现了其中的不同之处: 前三个Chro ...
- CSS——float
float:就是在于布局,首先要介绍的是文档流(标准流),之后是浮动布局. 文档流:元素自上而下,自左而右,块元素独占一行,行内元素在一行上显示,碰到父集元素的边框换行. 浮动布局: 1.float: ...
- 使用FastReport的BarCode2D控件生成含中文的PDF417条形码
解决方法:设定CodePage为936 FastReport用户手册中关于CodePage的说明: CodePage This property is specific to the PDF417 a ...
- linux下用scp命令在两个服务器之间传输文件,利用php_scp函数进行文件传输
在linux下利用scp进行文件传输, 从服务器下载文件 scp username@servername:/path/filename /path/filename 上传本地文件到服务器 scp /p ...