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】就可以了,不必累加

大概是这样吧 说的不是太明白
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值