Problem Description

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

正确代码

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main(){
char a[100000],b[100000];
while(cin>>a>>b){
int Y_a=0,Y_b=0;
for(int i=0;i<strlen(a);i++)
if(a[i]=='.'){
Y_a=1;
break;
}
for(int i=0;i<strlen(b);i++)
if(b[i]=='.'){
Y_b=1;
break;
}
if(Y_a){
for(int i=strlen(a)-1;i>=0;i--){
if(a[i]=='0'){
a[i]=0;
}
else if(a[i]=='.'){
a[i]=0;
break;
}
else break;
}
}
// if(Y_a) {
// cout<<"!!!"<<a<<' '<<a[1]<<endl;
// } if(Y_b){
for(int i=strlen(b)-1;i>=0;i--)
if(b[i]=='0'){
b[i]=0;
}
else if(b[i]=='.'){
b[i]=0;
break;
}
else break;
strcmp(a,b)?puts("NO"):puts("YES");
}
}

题意理解

起初做这道题的时候以为这是一个签到题,直到wrong了五次发现这存在着潜在的问题,既是浮点型如0.111000和数据极大的问题没有解决,因此应该进行判断是否带有小数点并且去掉小数点后多余的0。

错误以及解决方法

当看到这个题的第一眼以为是一个很简单的签到题,所以进行了一下程序的编写



事实上这道题目并没有想象中的那么简单,还有浮点型和越界问题没有解决,当意识到这个问题之后整个题目就显得非常简单明了了,但是还是会犯一些小错误,比如以下代码



导致这个代码wrong的原因是因为没有初始化,往往这种小的错误最不容易令人察觉,使用全局变量的同时应该考虑的是在进行运行循环的时候上一次的赋值会不会导致下一次循环的错误结果。经过对flog的初始化后,成功AC了题目。

#C++初学记录(A==B?##高精度)的更多相关文章

  1. #C++初学记录(高精度运算)(加法)

    高精度运算 不管是int还是double亦或者long long ,这些定义变量都有数据范围的一定限制,在计算位数超过十几位的数,也就是超过他们自身的数据范围时,不能采用现有类型进行计算,只能自己通过 ...

  2. #C++初学记录(sort函数)

    sort函数 前言:当进行贪心算法的学习时,需要用到sort函数,因为初学c++汇编语言,sort的具体用法没有深入学习,所以这里进行sort学习记录并只有基础用法并借用贪心算法题目的代码. 百度百科 ...

  3. javaweb初学记录

    原文 链接 http://blog.csdn.net/iojust/article/details/52429805 - ---热情依旧 - 环境搭建: - jdk环境配置 jdk下载: http:/ ...

  4. #C++初学记录(算法4)

    A - Serval and Bus It is raining heavily. But this is the first day for Serval, who just became 3 ye ...

  5. #C++初学记录(动态规划(dynamic programming)例题1 钞票)

    浅入动态规划 dynamic programming is a method for solving a complex problem by breaking it down into a coll ...

  6. Java 初学记录之可执行jar包

    环境 jdk7 jre7 当我用jdk7开发的时候,编写完成可执行的jar工具,并且成功使用. 当我在另一台机器安装了jre6,再次运行我的小工具jar 的时候,报错 解决: http://stack ...

  7. Java 初学记录之一 快速输入

    1. sysout 按回车 System.out.println();

  8. NOP初学记录

    1.  介绍的话不多说了.直接先来简单的安装跟配置先以3.6版本为例: 附带官网地址: http://www.nopcommerce.com   自行下载. 中文网:http://www.nopchi ...

  9. Python初学记录

    发音: 拍怂 语系:类C 特点: 1语句控制不用{}和(),而是强制用户空格或tab缩进.空格和tab数量不一定. 2解释性语言,不需要事先声明变量,即写即用. 3.list 列表可存放多种类型数据. ...

随机推荐

  1. 嵌入式处理器通过UART实现scanf和printf

    #include <stdint.h> #include <stdarg.h> extern int vsscanf(const char *, const char *, v ...

  2. SAP Marketing Cloud功能简述(五) : 销售计划管理

    Grace前四篇介绍SAP Marketing Cloud的文章: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Cloud ...

  3. CentOS7.5 部署Ceph luminous

    环境 两台CentOS7.5,每台各两块硬盘部署OSD public network = 10.0.0.0/24 cluster network = 172.16.0.0/24 导入ceph的rpm ...

  4. 安装sqlite3

    说明 当前操作在root用户下执行 1.安装编译工具 yum -y groupinstall "Development tools" yum -y install zlib-dev ...

  5. RabbitMQ topic 交换器

    topic交换器:"."将路由键分为几个标识符,"*"匹配一个, "#"可以匹配多个 1:路由键为*或者#的时候 *:只能匹配单个的字符串 ...

  6. Android笔记(七十) AlertDialog

    alertdialog可以在当前界面中弹出一个对话框,这个对话框在界面所有元素之上,可以屏蔽掉其他控件的交互能力,因此alertdialog常用于一些重要的内容警告. 使用AlertDialog.Bu ...

  7. angularcli 第三篇(数据循环*ngFor、条件判断*ngIf)

    1.数据循环 *ngFor (1)普通循环 <ul> <li *ngFor = "let item of list" > {{ item }} </l ...

  8. props、state、forms

    {}用来内嵌任何JS表达式JSX属性JS核心分为三大块:Es6.DOM.WindowBABEL编译器:可以在线编译html语法生成对应的react语法 **自定义组件第一个字母大写:用于区别普通的对象 ...

  9. 【转载】用户通过WEB方式更改AD域帐户密码

    用户改自己的域帐户密码一般通过以下几种方式: 加域的PC,用户直接按:Ctrl+Alt+Del键,点击:更改密码 通过exchange owa更改密码 让管理员重置密码 除了以上方式外,很多企业通过开 ...

  10. ISCC之msc2

    倒立屋 Flag:9102_cCsI 一道典型的LSB隐写,不过提交格式嘛,就很坑了 Stegsolve打开分析图片,注意到RGB三类图片的最低位基本相同,可能藏了东西. 有一个IsCc_2019,反 ...