zoukankan      html  css  js  c++  java
  • HDU2054

    题意:字面意思。

    思路:这题,需要往字面意思深入考虑。
    需要考虑前导零呀,小数点呀,字符串处理啊啊等。
    直接判断A和B是否相等于是就会output limit exceed,且只能比较int范围内的数字大小。

    #include<algorithm>
    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    #include<math.h>
    #include<queue>
    #include<stack>
    #include<map>
    using namespace std;
    
    #define inf 0x3f3f3f3f
    
    char s[100000],a[100000],b[100000];
    
    void vis(char s[100000])
    //void vis(char s)//这样不对,传入单个字符
    {
        int l=strlen(s);
        int k=0,i,j;
        for(i=0;i<l;i++)//寻找是否存在小数点
        {
            if(s[i]=='.')
            {
                k=1;
                j=i;//记录小数点的下标
                break;
            }
        }
    
        if(k==1)//如果存在小数点
        {
            for(i=l-1;i>j;i--)//把小数点后面无效的零变成字符串结束的标志''
            {
                if(s[i]=='0')
                {
                    s[i]='';
                    l--;
                }
                else
                    break;
            }
            if(s[l-1]=='.')//处理完到小数点后面一位的字符后,开始处理小数点
                s[l-1]='';//这种处理适用于6.00变为6.的这种情况
        }
        return ;
    }
    
    int main()
    {
    //需要考虑小数点,找到小数点把最后面无效的零去掉再比较
    //默认前导0可以不考虑
        while(~scanf("%s %s",a,b))
        {
            vis(a);
            vis(b);//先对字符串a、b进行处理,找到小数点并且去掉后面无效的零
            int t=strcmp(a,b);
            if(t==0)
                printf("YES
    ");
            else
                printf("NO
    ");
            memset(a,'',sizeof(a));
            memset(b,'',sizeof(b));
        }
        return 0;
    }
    
  • 相关阅读:
    如何调试在OJ中的代码
    在linux命令行中调试在OJ上的c++代码
    jar包
    stanford core
    decode encode
    访问服务器,远程访问linux主机
    代码18
    删除列表中的元素
    if __name__ == '__main__'
    苹果要求全部新app以及版本号更新必须支持iOS 8 SDK和64-bit
  • 原文地址:https://www.cnblogs.com/OFSHK/p/13179662.html
Copyright © 2011-2022 走看看