与7无关的数

var code = "97666f8d-50bf-4adf-ba60-19992a7d3b57"

一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数。求所有小于等于N的且与7无关的正整数的平方和。

例如:N = 8,<= 8与7无关的数包括:1 2 3 4 5 6 8,平方和为:155。

输入格式

第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000) 第2 - T + 1行:每行1个数N。(1 <= N <= 10^6)

输出格式

共T行,每行一个数,对应T个测试的计算结果。

输入样例

5
4
5
6
7
8

输出样例

30
55
91
91
155

 数

#include
using namespace std;
int t;
int i,k;
int n[1005];
long long sum[1000005]; //范围要大
int main (){
	cin>>t;
	for(i=1;i<=t;i++){
		cin>>n[i];
	} 
	for(long long j=1;j<=1000000;j++){//j的范围要用long long
		int flag=1;//定义在里,每次重新赋值为1
		int s=j;
		if(s%7==0){
			sum[j]=sum[j-1];
			continue;
		}
		while(s>0){
			if(s%10==7){
				sum[j]=sum[j-1];
				flag=0;
				break;
			}
			s/=10;//降位
		}
		if(flag){
		sum[j]=sum[j-1]+j*j;
		}
	}
	for( k=1;k<=t;k++){
		cout<

sum up:数组范围要考虑好,该用long long就用

你可能感兴趣的:(c++,蓝桥杯,算法)