这道题要注意潜在的超时问题。另外要注意的是,大数组应在main函数外初始化,若在main函数内初始化有可能导致栈溢出。
#include<iostream>
#include<string>
using namespace std;
int flag[1000000]; //大数组应定义在main函数外部 ,以免造成栈的溢出
void fun()
{
string str="";
for(int i=1;i<1000000;++i){
str=to_string(i);
if(str.find('4')==string::npos&&str.find("62")==string::npos)
flag[i]=1;
else
flag[i]=0;
}
}
int main()
{
fun();
int a,b;
while(cin>>a>>b&&(a||b)){
int sum=0;
for(int i=a;i<=b;++i){
if(flag[i]==1)
++sum;
}
cout<<sum<<endl;
}
return 0;
}