例如: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)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^6)
Output
共T行,每行一个数,对应T个测试的计算结果。
Sample Input
5 4 5 6 7 8Sample 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
",b[a]);
}
return 0;
}
...