1 #include<cstdio> 2 int a[1000000+11]={0,1}; //0代表不吉利 3 int s[1000000]; 4 int main() 5 { 6 int j,k,l; 7 for(int i=1;i<=1000000;i++) 8 { 9 j=0; 10 l=i; 11 k=0; 12 while(l) 13 { 14 s[++k]=l%10; 15 l=l/10; 16 if(s[k] == 4) 17 { 18 a[i]=a[i-1]; 19 j=1; 20 break; 21 } 22 if(s[k] == 6) 23 { 24 if(s[k-1] == 2) 25 { 26 a[i]=a[i-1]; 27 j=1; 28 break; 29 } 30 31 } 32 } 33 if(j==0) a[i]=a[i-1]+1; 34 } 35 int n,m; 36 while(scanf("%d%d",&m,&n)&&(m+n)) 37 { 38 printf("%d\n",a[n]-a[m-1]); 39 } 40 }
原文:http://www.cnblogs.com/yexiaozi/p/5689064.html