水题,直接模拟打表。然后根据读入直接输出即可。
*但是要注意,循环变量必须用long long,不然I*I会爆
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
long long f[1000000+5];
int main(){
for(long long i=1;i<=1000000;i++){
int x=i;
int flag=0;
if(x%7==0){
f[i]=f[i-1];
continue;
}
while(x!=0){
if(x%10==7) flag=1;
x=x/10;
}
if(flag) f[i]=f[i-1];
else f[i]=f[i-1]+i*i;
}
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
printf("%lld\n",f[n]);
}
return 0;
}