打个表就好。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const int maxn=1e6+5;
int a[maxn];
bool check(int x)
{
	while(x)
	{
		if(x%10==4||x%100==62)
			return 0;
		x/=10;
	}
	return 1;
}
void init()
{
	a[0]=0;
	for(int i=1;i<=maxn-4;i++)
		if(check(i))
			a[i]=a[i-1]+1;
		else a[i]=a[i-1];
}
int main()
{
	int n,m;
	init();
	while(cin>>n>>m)
	{
		if(!n&&!m)
			break;
		if(check(n))
			printf("%d\n",a[m]-a[n]+1);
		else printf("%d\n",a[m]-a[n]);
	}
	return 0;
 }
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐