HDU-2054 A==B?
#include<stdio.h>
#include<string.h>
char n[100000], m[100000];
int main()
{
int i, j, len_n, len_m, flag, len_last, len_late,doc, q, p, count, start;
char ch;
while(1)
{
memset(n, 0, sizeof(n));
memset(m, 0, sizeof(m));
flag = i = j = doc = count = start = 0;
while(1)
{
if(scanf("%c", &ch) == EOF) return 0;
if(ch == '\n' && start == 1) break;
else if(ch != ' ' && ch != '\n' && flag == 0)
{
n[i++] = ch;
}
else if(ch == ' ' || ch == '\n')
{
flag = 1;
start = 1;
}
else m[j++] = ch;
}
len_n = strlen(n);
len_m = strlen(m);
if((n[0] == '-' && m[0] != '-') || (n[0] != '-' && m[0] == '-'))
{
printf("NO\n");
continue;
}
for(i = n[0] != '-'? 0:1; i<len_n && n[i] - '0'== 0; i++);
for(j = m[0] != '-'? 0:1; j<len_m && m[j] - '0'== 0; j++);
len_n -= i;
len_m -= j;
len_last = len_n < len_m? len_n:len_m;
len_late = len_n + len_m - len_last;
{
for(; count < len_last; i++, j++, count++)
if(n[i] - '0' != m[j] - '0') break;
else if(n[i] == '.') doc = 1;
if(count >= len_late)
{
printf("YES\n");
}
else
{
if(len_n > len_m)
{
if(doc != 1 && n[i] != '.') printf("NO\n");
else
{
for(i = n[i] == '.'? i+1: i; i<strlen(n); i++)
if(n[i] - '0' != 0 ) break;
if(i>=len_n) printf("YES\n");
else printf("NO\n");
}
}
else if(len_n < len_m)
{
if(doc != 1 && m[j] != '.') printf("NO\n");
else
{
for(j = m[j] == '.'? j+1: j; j<strlen(m); j++)
if(m[j] - '0' != 0 ) break;
if(j>=len_m) printf("YES\n");
else printf("NO\n");
}
}
else if(len_n == len_m) printf("NO\n");
}
}
}
return 0;
}
1.考虑数字前面的0
2.考虑小数点后的0
3.考虑大数字
HDU-2054 A==B?的更多相关文章
- HDU 2054 A == B ?(找小数点)
题目链接:pid=2054" target="_blank">http://acm.hdu.edu.cn/showproblem.php?pid=2054 Prob ...
- hdu 2054
Ps:WA了无数次,,简直成了心病..今天终于AC了..先取整数部分,去零,判断位数相等否,再比较.如果相等,再取小数部分,去零,比较,输出....好烦... 代码; #include "s ...
- hdu 2054 A == B ? (java)
问题: 考虑问题不周到.没有考虑到可能是小数并且存在 1.0=1.01=1的情况. 本题使用了BigDecimal类,此类适用于高精度的数此时攻克了小数和01=1的问题, 该类比較方式中n.equal ...
- HDU 2054 又见GCD
又见GCD Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDU 2054 A==B? 大数
Problem Description Give you two numbers A and B, if A is equal to B, you should print "YES&quo ...
- JAVA大数几算--HDU 2054 A == B ?
Problem Description Give you two numbers A and B, if A is equal to B, you should print "YES&quo ...
- HDU——PKU题目分类
HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...
- [转] HDU 题目分类
转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...
- HDU ACM 题目分类
模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...
- HDU 5643 King's Game 打表
King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...
随机推荐
- python 代码格式化工具:autopep8
学习资料: https://github.com/hhatto/autopep8 背景 autopep8 会根据 PEP 8 样式文档来格式化 python 代码.它使用 pep8 来决定代码的哪部分 ...
- spring mvc mybatis
Spring与Mybatis整合需要引入一个mybatis-spring.jar包,该整合包有Mybatis提供,可以从Mybatis官网下载. 该jar包提供了几个API: 1.SqlSession ...
- sqlserver授予用户查看执行计划的权限
sqlserver查看语句的执行计划是非常重要的,可以提高开发人员代码的质量.所以有必要授予开发人员对数据库查看执行计划的权限. 查看执行计划的权限属于数据库一级别的权限,具体例子如下 use ...
- 字符串的encode与decode解决乱码问题
!/usr/bin/env python coding=utf-8 s="中文" if isinstance(s, unicode): s=u"中文" prin ...
- zookeeper选举代码分析
本文将以zookeeper的3.4.6版本作为源码分析版本.主要的代码类包括QuorumPeerMain.QuorumPeer.FastLeaderElection.QuorumMaj等. 假设有a, ...
- PKU 1511 Invitation Cards (SPFA+邻接表)
题目链接:点击打开链接 题目需要求从原点到所有点的最短距离之和和所有点到原点的最短距离之和,在求所有点到原点最短距离的时候用到了一个技巧:即把图反向,求原点到所有其他点的最短距离,这样用一次SPFA就 ...
- Android使用DOM生成和输出XML格式数据
Android使用DOM生成和输出XML格式数据 本文主要简单解说怎样使用DOM生成和输出XML数据. 1. 生成和输出XML数据 代码及凝视例如以下: try { DocumentBuilderFa ...
- CSDN Markdown简明教程5-高速上手
0.文件夹 文件夹 前言 CSDN Markdown特点 CSDN Markdown高速上手 1 使用快捷键 粗体斜体 引用 链接 高亮代码块 图片 标题 列表 切割线 撤销反复 2 使用离线写作 3 ...
- QT 内存泄露 检测
一:问题出现 最近几天在做一个QT程序,IPX的检测控制程序.需要全天候运行.自己做完了,然后就运行.使用 top|grep TP2 来动态检测程序的CPU,内存占用律.不幸的是,一晚 ...
- win10的独立存储
win10的独立存储和win8的大致相同 Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.Appl ...