题目内容: YF不爱名利,所以他既不喜欢6,也不喜欢8。他的幸运数字是4和7。如果一个数字中只包含4和7,他就认为这个数字是他的幸运数。 现在给你两个正整数a,b,要求返回a,b之间的幸运数的个数,包括a,b本身。 输入描述 第一行输入数目n,表示后面有n组ab 第2行开始,每行一组a b, 空格隔开。 输出描述
每行输出一个数,即a,b之间的幸运数的个数。
输入样例
3
11 20
4 7
1 1
输出样例
0
0
2
最坑在于没有数据大小(要自己测试)
#include"iostream"
#define MaxSize 10000000
using namespace std;
int n,a,b,c[MaxSize],ans[MaxSize];
void pre()//打表再说
{ int sum = 0,p,t,flag = 1;
for(int i = 1;i < MaxSize;i++)
{ p = i;
flag = 1;
while(p)
{
t = p%10;
p = p/10;
if(t!=4&&t!=7)
{
flag = 0;
break;
}
}
if(flag)sum++;
c[i] = sum;
}
}
void solve()
{
cin >> n;
for(int i = 0;i < n;i++)
{
cin >> a >> b;
ans[i] = c[b] - c[a-1];
}
for(int i = 0;i < n;i++)
cout << ans[i] <<endl;
}
int main()
{
pre();
solve();
}