【菜鸟日记】不要62! HDU

来源:互联网 发布:淘宝飞猪靠谱吗 编辑:程序博客网 时间:2024/06/07 02:19

不要62

Problem Description


杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。
杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。
不吉利的数字为所有含有4或62的号码。例如:
62315 73418 88914
都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。
你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。

Input


输入的都是整数对n、m(0

#include <stdio.h>int main(void){    //int card[7];    int n, m,x;    int i, count = 0;    scanf("%d%d", &n, &m);    for (;n != 0 && m != 0;n++)    {        x = n;        for (i = 10;x != 0;)        {            if (x%i == 4)                break;            else x /= i;        }        if (x == 0)            count++;    }    printf("%d", count);}

后来我看了sprintf

然后

下面是ac了的代码

本来以为会超时。。。。

#include<stdio.h>int nums[1000001]={0};int main (void){    int i,j;    int n,m,sum;    char num[8];    for(i=1;i<=1000000;i++)    {        sprintf(num,"%d",i);        for(j=0;j<8;j++)        {            if(num[j]=='4'||(num[j]=='6'&&num[j+1]=='2'))                {                nums[i]=1;                break;                }        }    }    scanf("%d%d",&n,&m);    while(n!=0&&m!=0)    {    sum=m-n+1;    for(;n<=m;n++)    {        sum-=nums[n];    }    printf("%d\n",sum);    scanf("%d%d",&n,&m);    }}
原创粉丝点击