PTA、PAT 7-8 不吉利数字

杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62的号码。例如:

62315 73418 88914 都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。 你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。 (题目引用自HDOJ)

或许你已经用数位DP做过这个题(不知道数位DP?没关系,反正我不是用数位DP做的,还有更简便的方法),开动你的大脑吧,当你想出来的时候,你会体会到这个题是有多么水。

2015工作组

输入格式:

输入整数对n、m(0<n≤m<1000000)

为了降低题目的复杂度,这里输入只用一组。

输出格式:

输出[m,n]区间内一共有多少个数不含有不吉利数字

输入样例:

1 100

输出样例:

80

主要用到了sprintf,由于该题很典型,所以码上留念,题不是很难,关键是思路一定要清晰,还有就是,一定要养成打代码时加注释的好习惯

#include<stdio.h>
int main()
{
        int m,n,i,j;
        int l,N=0;
        scanf("%d%d",&m,&n);
        char a[7];

        for(i=m;i<=n;i++)
        {
             l=sprintf(a,"%d",i);
             for(j=0;j<l;j++)
             {
                 if((a[j]=='6'&&a[j+1]=='2')||a[j]=='4')
                 {
                     N++;//不吉利数字的总个数
                     break;//必须结束,否则会重复计数,例如44
                 }
             }

        }
       // printf("%d\n",N);
        printf("%d",n-m+1-N);


}
2018/4/19 13:08:10答案正确107-8C (gcc)204 ms 
测试点结果耗时内存
0答案正确2 ms128KB
1答案正确2 ms128KB
2答案正确204 ms212KB

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页