E - A == B ? HDU - 2054
2017-07-22 21:37
197 查看
E - A == B ? HDU - 2054
Give you two numbers A and B, if A is equal to B, you should print “YES”, or print “NO”. Input
each test case contains two numbers A and B.
Output
for 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
估计OJ有问题
话说
+0 -0输出
NOAC我信了但竟然+1和1.0~N0竟然AC了竟然AC了;
啊西巴贼烦,下面有WA版改进了添加
+-号的问题大神帮帮找找BUG。
这时AC版
#include <stdio.h> #include <string.h> #include <iostream> using namespace std; char a[100000],b[100000]; void change(char s[]) { int i,len; len = strlen(s); if(strstr(s,".")) { for(i = len-1; s[i] == '0'; i--) { s[i] = '\0'; len--; } } if(s[len-1] == '.') s[len-1] = '\0'; } int main() { while(cin>>a>>b) { change(a); change(b); if(strcmp(a,b)) cout<<"NO"<<endl; else cout<<"YES"<<endl; } return 0; }
//这是WA版本来以为只有正整数没想到还有正负之分所以没包装函数,o(︶︿︶)o 唉后面有时间再修改。各位凑合看,见笑了……
#include <stdio.h> #include <string.h> #include <iostream> using namespace std; char a[100000],b[100000]; void change(char s[]) { int i,len; len = strlen(s); if(strstr(s,".")) { for(i = len-1; s[i] == '0'; i--) { s[i] = '\0'; len--; } } if(s[len-1] == '.') s[len-1] = '\0'; } int main() { while(cin>>a>>b) { change(a); change(b); if(strcmp(a,b)) cout<<"NO"<<endl; else cout<<"YES"<<endl; } return 0; }
#include <iostream>
#include <string>
#include <assert.h>
using namespace std;
const int maxn = 50000;
char a[maxn];
char b[maxn];
bool Pd(char* a, char* b)
{
assert(a != NULL && b!= NULL);
if (a[0] != '-' && b[0] != '-'){
if (a[0] == '+'){
a[0] = '0';
}
if (b[0] == '+'){
b[0] = '0';
}
return true;
}
else if (a[0] == '-'){
if (b[0] != '-'){
for (int i = 0; i < strlen(b); ++i){
if (b[i] != '0' && b[i] != '.'&& b[i] != '+')
return false;
}
a[0] = '0';
return true;
}
else if(b[0] == '-')
{
a[0] = 0;
b[0] = 0;
return true;
}
}
else
{
for (int i = 0; i < strlen(a);++i){
if (a[i] != '0' && a[i] != '.')
return false;
}
b[0] = '0';
return true;
}
}
int main()
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
while (scanf("%s%s",a,b) != EOF){
if (!Pd(a,b))
printf("NO\n");
else{
int al = strlen(a);
int bl = strlen(b);
char* sb = strstr(b,".");
char* sa = strstr(a,".");
int sal = 0;
int sbl = 0;
if (sa)
sal = strlen(sa);
if (sb)
sbl = strlen(sb);
string stra;
string strb;
for (int i = 0; i < al - sal; i++){
if (a[i] != '0'){
stra.push_back(a[i]);
}
}
for (int i = 0; i < bl - sbl; ++i){
if (b[i] != '0'){
strb.push_back(b[i]);
}
}
if (stra != strb)
printf("NO\n");
else{
if (sa && sb)
{
string ssa;
string ssb;
int flag = 0;
for (int i = sal-1; i > 0; --i)
{
if (sa[i] != '0' || flag){
flag = 1;
ssa.push_back(sa[i]);
}
}
flag = 0;
for (int i = sbl-1; i > 0; --i){
if (sb[i] != '0' || flag){
flag = 1;
ssb.push_back(sb[i]);
}
}
if (ssa != ssb){
printf("NO\n");
}
}
else if (sa || sb)
{
if (sa){
for (int i = 1; i < sal; ++i){
if (sa[i] != '0'){
printf("NO\n");
break;
}
}
}
else{
for (int i = 1; i < sbl; ++i){
if (sb[i] != '0'){
printf("NO\n");
break;
}
}
}
}
printf("YES\n");
}
}
}
return 0;
}
//有通不过的例子记得发送一下,我自己调调!
blbagony@163.com
//搞了一下午真的是心痛
相关文章推荐
- HDU 2054 A==B
- HDU 2054 A == B ?
- HDU 2054 A == B?
- [恢]hdu 2054
- HDU 2054 A == B ?
- hdu 2054
- A == B ? HDU - 2054
- HDU 2054 A == B ?
- hdu 2054A == B ?
- HDU 2054
- hdu 1055 & poj 2054 Color a Tree 树&贪心 找最大费用点和父节点合并
- HDU 2054 A == B ? 字符串处理
- hdu 2054 A == B?
- NYOJ 524 & HDU 2054 A==B?(模拟)
- HDU 2054
- hdu 2054-A == B ?
- hdu 2054
- hdu 2054 A == B ?
- 返回代码hdu 2054 A==B?
- HDU 2054 A==B? 大数