HDU 2054 A == B ?
来源:互联网 发布:大淘客和淘宝联盟区别 编辑:程序博客网 时间:2024/05/18 00:46
A == B ?
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 104450 Accepted Submission(s): 16623
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 22 23 34 3
Sample Output
NOYESYESNO
给你两个数字判断是否相等 并未给出数字的位数限制 所以可用字符串来处理
应注意 在处理字符串时 要去掉前导零和后缀零 同时还要注意数字前面的“+”和“-”
代码略长 思路简单
AC代码:
#include <stdio.h> #include <string.h> void jinghua(char *a){ int n=strlen(a); int index1,index2; int flag=1,flag1; for (int i=0;i<n&&flag;i++){//判断有无小数点 if (a[i]=='.'){ index1=i; flag=0; } } int i,j; if (!flag){//数字带小数点 flag1=1; if (a[0]=='-'||a[0]=='+'){//数字前有“+”或“-”号 for ( i=1;i<=index1&&flag1;i++){//去掉前导0 if (a[i]!='0'){ index2=i; flag1=0; } } if (a[index2]=='.') index2=index2-1; for ( i=1,j=index2;i<n-index2;i++,j++){ a[i]=a[j]; } } else{//数字前无“+”或“-”号 flag1=1; for ( i=0;i<=index1&&flag1;i++){ if (a[i]!='0'){ index2=i; flag1=0; } } if (a[index2]=='.') index2=index2-1; for ( i=0,j=index2;i<n-index2;i++,j++){ a[i]=a[j]; } } flag1=1; a[i]='\0'; for (j=i-1;a[j]!='.'&&flag1;j--){//去掉后缀 0 if (a[j]=='0'){ a[j]='\0'; flag1=1; } else flag1=0; } if (flag1){ a[j]='\0'; } } else{// 数字不带小数点 flag1=1; if (a[0]=='-'||a[0]=='+'){// 数字前有“+”或“-”号 for ( i=1;i<n&&flag1;i++){//去掉前导0 if (a[i]!='0'){ flag1=0; index2=i; } } if (index2!=1){ for ( i=1,j=index2;i<n-index2;i++,j++){ a[i]=a[j]; } } if (index2!=1) a[i]='\0'; } else{//数字前无“+”或“-”号 flag1=1; for ( i=0;i<n&&flag1;i++){//去掉前导0 if (a[i]!='0'){ flag1=0; index2=i; } } if (index2!=0){ for ( i=0,j=index2;i<n-index2;i++,j++){ a[i]=a[j]; } } if (index2!=0) a[i]='\0'; } } } int main (){ char a[100000],b[100000]; while (~scanf ("%s %s",a,b)){ jinghua(a); jinghua(b); if (strcmp(a,"-0")==0&&strcmp(b,"+0")==0||strcmp(a,"+0")==0&&strcmp(b,"-0")==0) printf ("YES\n"); else if (strcmp(a,b)==0) printf ("YES\n"); else printf ("NO\n"); } return 0; }
0 0
- HDU 2054 A == B ?
- HDU 2054 A==B
- hdu acm 2054 A == B ?
- hdu - 2054 - A == B ?
- hdu 2054 A == B ?
- Hdu 2054 - A == B ?
- hdu 2054 A == B ?【JAVA】
- hdu 2054 A==B?
- HDU 2054 A == B ?
- hdu 2054 A==B?
- hdu 2054 A == B ?
- HDU--2054 -- A == B ? [字符串]
- HDU 2054 - A == B ?
- HDU 2054 A == B ?
- HDU-2054 A==B?
- HDU 2054 A==B? 大数
- HDU 2054 A == B ?
- hdu 2054A == B ?
- matlab用mkdir在指定的文件夹下创建新的文件夹,并把图像保存在该文件夹内
- 【JavaSE系列-入门篇1】——Java技术简介
- spring学习笔记(五)
- 接口
- Leetcode 203(Java)
- HDU 2054 A == B ?
- 比较ReentrantReadWriteLock和synchronized
- 黄金分割数0.618
- 第七周 CSS3 长度单位
- 设置代理服务器
- MFC 自定义消息实现与响应
- spring学习笔记(六)
- robocode学习系列(一)--基础内容
- 代理模式 原型模式