51nod 1082 与7无关的数

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

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

打表然后再二分查找答案

#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=1e6+10;
int table[maxn];

void init()
{
	for(int i=7;i<maxn;i++)
	{
		if(!(i%7)) table[i]=1;
		int temp=i;
		while(temp)
		{
			int tem;
			tem=temp%10;
			temp/=10;
			if(tem==7)
			{
				table[i]=1;
				break;
			}
		}
	}
}


int main()
{
	init();
	//for(int i=7;i<=70;i++)
	//if(!table[i]) printf("%d\n",i);
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n;
		scanf("%d",&n);
		long long ans=0;
		for(long long i=1;i<=n;i++)
		{
			if(!table[i]) ans+=(i*i);
		}
		printf("%lld\n",ans);
	}
} 

猜你喜欢

转载自blog.csdn.net/weixin_41544329/article/details/84504840