hdu 2054

Ps:WA了无数次,,简直成了心病..今天终于AC了..先取整数部分,去零,判断位数相等否,再比较.如果相等,再取小数部分,去零,比较,输出....好烦...

代码;

#include "stdio.h"
#include "string.h"
void swi(char a[],char b[]);
void swi1(char a[],char b[]);
void qdele(char a[],char b[]);
void hdele(char a[]);
int main(){
    int n,s1,s2,s3,s4;
    char a[100010],b[100010],c[100010],d[100010];
    while(~scanf("%s%s",&a,&b)){
        swi(a,c);
        swi(b,d);
        qdele(c,c);
        qdele(d,d);
        s1=strlen(c);
        s2=strlen(d);
        if(s1==s2){
            if(strcmp(c,d)==0){
                swi1(a,c);
                swi1(b,d);
                hdele(c);
                hdele(d);
                if(strcmp(c,d)==0){
                    printf("YES\n");
                }
                else{
                    printf("NO\n");
                }
            }
            else{
                printf("NO\n");
            }
        }
        else{
            printf("NO\n");
        }
    }
    return 0;
}
void swi(char a[],char b[]){
    int i,s;
    s=strlen(a);
    for(i=0;i<s;i++){
        if(a[i]==‘.‘) break;
        b[i]=a[i];
    }
    b[i]=‘\0‘;
}
void swi1(char a[],char b[]){
    int i,s,t;
    t=0;
    s=strlen(a);
    for(i=s;i>=0;i--){
        if(a[i-1]==‘.‘) break;   //12.200    s-i-1
    }
    //t=s-i-1;
    for(;i<s;i++){
        b[t++]=a[i];
    }
    b[t]=‘\0‘;
}
void qdele(char a[],char b[]){
    int i,s,t;
    t=0;
    s=strlen(a);
    for(i=0;i<s;i++){
        if(a[i]!=‘0‘) break;    //0022   i=2;
    }
    for(;i<s;i++){
        b[t++]=a[i];
    }
    b[t]=‘\0‘;
}
void hdele(char a[]){
    int i,s,t;
    t=0;
    s=strlen(a);
    for(i=s;i>=0;i--){
        if(a[i-1]!=‘0‘) break;    //2200
    }
    a[i]=‘\0‘;
}
时间: 2024-10-11 07:34:54

hdu 2054的相关文章

HDU 2054 A == B ?(找小数点)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2054 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, i

hdu 2054 A == B ? (java大数)

题目意思: http://acm.hdu.edu.cn/showproblem.php?pid=2054 给出两个数,判断是否相等,相等输出YES,否则输出NO. 题目分析: 注意题目给的是两个数,没有说明格式和大小,只能字符串模拟比较,或者java大数比较.这里给出java的大数比较. AC代码: import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; public class Ma

HDU 2054 又见GCD(水题??)

又见GCD Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15221    Accepted Submission(s): 6397 Problem Description 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一行输入一个n

HDU 2054: A == B ?

A == B ? import java.util.*; import java.math.*; class Main{ public static void main(String args[]) { Scanner scanner=new Scanner(System.in); while(scanner.hasNextBigDecimal()) { BigDecimal x=scanner.nextBigDecimal(),y=scanner.nextBigDecimal(); Syste

hdu 2054 A == B ? (java)

问题: 考虑问题不周到,没有考虑到可能是小数而且存在 1.0=1:01=1的情况. 本题使用了BigDecimal类,此类适用于高精度的数此时解决了小数和01=1的问题, 该类比较方式中n.equal(m)比较精度,而n.compareTo(m)==0只比较数值适用于该题. A == B ? Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s)

[Water]Hdu 2054 A == B ?

这道题类似Java的大数. #include <iostream> #include <string> using namespace std; string format(string str){ bool zheng=true; int ppos=str.find('.'); int len=str.length(); string s1,s2; if(ppos!=-1){ int ii; for(ii=len-1;ii>ppos;ii--){ if(str[ii]!='

ACM的java 傻瓜式教学

关于eclipse的配置 我感觉我讲不清[逃 开始 从配好之后讲起 文件名命名为Main.java[接下来几行解释为什么要起这个名字 注意第七行那里(为了方便复制我没有加行号)的类的名字必须与文件名相同 但是你会看到各大oj的FAQ上有一些要求 比如hdu上有这个 然后貌似我今年去鞍山打区域赛的时候也有这个要求 所以就不要倔吧 就起这个名 “框架” 然后大概所谓“框架”就是这样 import java.util.*; import java.io.*; import java.math.*; i

hdu 1055 &amp; poj 2054 Color a Tree 树&amp;贪心 找最大费用点和父节点合并

Color a Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 7144 Accepted: 2458 Description Bob is very interested in the data structure of a tree. A tree is a directed graph in which a special node is singled out, called the "root"

HDU ACM 2054 A == B ? 水题

分析:水题,主要是要注意几个细节. #include<iostream> using namespace std; char a[100005],A[100005]; char b[100005],B[100005]; void Process(char* p,int count,char* p2) { int pos; bool is_real; int i=0,k=0,j; label: while(*(p+i)!='\0' && *(p+i)=='0') i++; if(