杭电2089题(用打表法)

来源:互联网 发布:淘宝毛巾是标品 编辑:程序博客网 时间:2024/06/05 02:41

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 1000002

int main()
{
    int i,j,l;
    char a[15],b[max];
    for(i=1; i<=max; i++)
    {
        itoa(i,a,10);
        l=strlen(a);
        for(j=0; j<l; j++)
        {
            if(a[j]=='4'&&a[j-1]!='4')
                b[i]=1;
                     if(a[j]=='2'&&a[j-1]=='6')
                         b[i]=1;
        }
    }        //用打表法把1到1000000的满足条件的数字存于数组b中并赋值1;
    int n,m,k;

    while(scanf("%d%d",&n,&m),n||m)
    {
        k=0;
        for(i=n; i<=m; i++)
        {
            if(b[i]==1)
                k++;
        }
        printf("%d\n",m-n+1-k);
    }
    return 0;
}

0 0