求助站外题
  • 板块灌水区
  • 楼主OceanBrawl
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/12/20 23:53
  • 上次更新2023/10/28 13:58:59
查看原帖
求助站外题
567034
OceanBrawl楼主2021/12/20 23:53

如果一个数字中只包含4、7和9,他就认为这个数字是他的幸运数。现在给你两个正整数a,b,求出a,b之间的幸运数的个数,包括a,b本身。

第一行为一个整数k(≤100),表示测试数据组数,接下来k行,每行包含两个正整数a,b(1≤a≤b≤10^12)

3
11 20
4 7
1000000 5000000
输入样例
0
2
729
输出样例
#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main()
{
    //freopen("lucky.in","r",stdin);
    //freopen("lucky.out","w",stdout);
    int t;scanf("%d",&t);
    while(t--)
    {
        ll a,b;int ans=0;scanf("%lld %lld",&a,&b);
        for(int i=a;i<=b;i++)
        {
            bool f=1;
            int x=10*i;
            while(x/=10)
            {
                int s=x%10;
                if(s==4||s==7||s==9)f=1;
                else
                {
                    f=0;break;
                }
            }
            if(f)ans++;
        }
        cout<<ans<<endl;
    }
    return 0;
}
我代码

数据规模太大,我这样肯定超时,问题是该怎么优化,求助

2021/12/20 23:53
加载中...