不要62 hdu2089

不要62

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 23611    Accepted Submission(s): 8087


Problem Description
杭州人稱那些傻乎乎粘嗒嗒的人爲62(音:laoer)。
杭州交通管理局經常會擴充一些的士車牌照,新近出來一個好消息,以後上牌照,不再含有不吉利的數字了,這樣一來,就可以消除個別的士司機和乘客的心理障礙,更安全地服務大衆。
不吉利的數字爲所有含有4或62的號碼。例如:
62315 73418 88914
都屬於不吉利號碼。但是,61152雖然含有6和2,但不是62連號,所以不屬於不吉利數字之列。
你的任務是,對於每次給出的一個牌照區間號,推斷出交管局今次又要實際上給多少輛新的士車上牌照了。
 

Input
輸入的都是整數對n、m(0<n≤m<1000000),如果遇到都是0的整數對,則輸入結束。
 

Output
對於每個整數對,輸出一個不含有不吉利數字的統計個數,該數值佔一行位置。
 

Sample Input
1 100 0 0
 

Sample Output
80
 
數位dp
#include<stdio.h>
#include<string.h>
int a[1000005];//用來標記的數組
int main()
{
    int i,t,flag,sum,n,m;
    memset(a,0,sizeof(a));//先將數組中所有數字標記爲0;
    for(i=1;i<=1000000;i++)
    {
        t=i;flag=1;
        while(t)
        {
            if(t%10==4 || t%100==62)
            {
                a[i]=1;
            }
           t/=10;
        }
    }
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        sum=0;
        if(n==0 && m==0)
            break;
        else
        {
            for(i=n;i<=m;i++)
            {
                if(!a[i])
                sum++;
            }
                        //如果數組中的某個元素標記了,就說明這個元素的下標是一個符合要求的數字。
            printf("%d\n",sum);
        }
    }
return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章