训练1-T


一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数。求所有小于等于N的与7无关的正整数的平方和。
例如:N = 8,<= 8与7无关的数包括:1 2 3 4 5 6 8,平方和为:155。

Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^6)
Output
共T行,每行一个数,对应T个测试的计算结果。
Sample Input
5
4
5
6
7
8
Sample Output
30
55
91
91
155

懒得自己码了,就附上大佬ac的代码吧,注意提交时选c++
#include<cstdio>
const int maxn=1e6+10;
long long int b[maxn];
int main()
{
    b[1]=1;
    for(long long int i=2;i<=maxn;i++)
    {
        int tmp=i;
        int fl=0;
        if(i%7==0){
                b[i]=b[i-1];
                continue;
        }
        while(tmp)
        {
            int c=tmp%10;
            if(c==7){

                b[i]=b[i-1];
                fl=1;
                break;
            }
            tmp/=10;
        }
        if(fl==0)b[i]=b[i-1]+i*i;
    }
    int a;
    int t1;
    scanf("%d",&t1);
    while(t1--)
    {
        scanf("%d",&a);
       printf("%lld\n",b[a]);
    }
return 0;
}


...

猜你喜欢

转载自blog.csdn.net/qq_41785863/article/details/80631268
t1