• 852753


    说实话!这题真的很恶心,hdu竟然认为是这是热身题,服了!!哎!!
    这也能叫热身题?好了,废话不多说,下面讲一下此题的方法:
    这道题你只能用打表的方法否者肯定超时,哎!!
    解决这道题我它有两种方法,但实际上也差不多,就是在统计的时候用了不同的方法!!
    方法一:
    #include<iostream>
    #include<cstring>
    using namespace std;
    bool shu[1000010];
    void jishu()
    {
        int i;
        for(i=1;i<=1000010;i++)
     {    
      for(int j=i;j>0;j/=10)
       if(j%100==62||j%10==4)
       {
        shu[i]=false;break;
       }
                else shu[i]=true;
            }
    }
    int main()
    {
        int a,b;
        jishu();
        while(scanf("%d%d",&a,&b)!=EOF)
        {
            int i,k=0;
            if(a==0&&b==0) break;
            for(i=a;i<=b;i++)
            {
                if(shu[i])
                k++;
            }
            printf("%d\n",k);
        }
        return 0;
    }

     
    这种方法比较简单,也很好理解!!!哈!!!我就不多说了!!
    下面讲解方法二:
    方法二就是在处理的时候有点不同,用到了两个函数itoa()和strstr();
    下面我分别讲解一下这两个函数的作用,
    itoa()是类型转换函数
    是有的时候格式是:
    int a;
    char b[20];
    itoa(a,b,10)其中a为要转换的数,b为转换的字符,10为进制!!使用这个函数,可以将数字a转换成字符型的b,并存在数组里

    strstr()函数原型是char *strstr( const char *s1, const char *s2 ),包含在头文件#include<string.h>中,功能是,

    找出str2在str1中第一次出现的位置(不包扩str2的结束符),如果找到了,返回该位置的指针,否者返回NULL!!


    #include<iostream>
    #include<cstring>
    using namespace std;
    char ch[20];
    bool shu[1000010];
    void jishu()
    {
        int i;
        for(i=1;i<=1000010;i++)
            {
                itoa(i,ch,10);
                if((strstr(ch,"62")!=NULL)||(strstr(ch,"4")!=NULL))
                 shu[i]=false;
                else shu[i]=true;
            }
    }
    int main()
    {
        int a,b;
        jishu();
        while(scanf("%d%d",&a,&b)!=EOF)
        {
            int i,k=0;
            if(a==0&&b==0) break;
            for(i=a;i<=b;i++)
            {
                if(shu[i])
                k++;
            }
            printf("%d\n",k);
        }
        return 0;
    }

  • 相关阅读:
    C++ 函数设计原则
    C++ 转换函数搭配友元函数
    C++ 自动转换和强制类型转换(用户自定义类类型)
    C++ rand函数
    C++ 状态成员
    C++ 友元函数
    C++ 运算符重载
    RabbitMQ的简单应用
    Python的正则表达式
    Python的应用小案例
  • 原文地址:https://www.cnblogs.com/xiohao/p/2762434.html
Copyright © 2020-2023  润新知