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

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