51nod-1082与七无关的数

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

打表方法
在网上看到的是打表,求小于等于N的与七无关的数的平方的和,可以将和七有关的数的平方和看为0,这样可以将1-N的数的平方和都打表存入数组(和七有关的数的平方和看为0)。
判断一个数x是不是和7有关,一个是整除7,二是某一位上有7
第一种情况可以判断if(x%7==0),
第二种情况可以将每一位上的数字拿出来和七对比:
while(x)
{
   if(x%10==7) 这一位上是7
      return false; 返回false说明这个数和七有关
   else
     x=x/10; 否则x接下来判断下一位(写写画画会有感受)
}。
然后数组内存储的是0-N的平方和,和7有关的则为前一位的值(因和7对应的数不加入和,所以和前一位相等)
这样的话最后只需要输出a【n】就可以了,不必累加

大概是这样吧 说的不是太明白

没有更多推荐了,返回首页