与7无关的数-题解

描述

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

输入

输入为一行,正整数n(n < 100)

输出

输出一行,包含一个整数,即小于等于n的所有与7无关的正整数的平方和。

样例输入

   21

样例输出

2336

题意

找出N以内所有与7无关的数(不能被7整除且各个数位都不是7),并算出他们的平方和。

解题思路

先用for找出小于等于n的数,再用“%10”的方法来判段哪些数是与7无关的数,然后用b代替for中的i,然后用while算出n以内与7无关的i的平方和,最后输出sum。

代码实现

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
                int n,sum,sum1=0,a=0;
                cin>>n;
                for(int i=1;i<=n;i++){//i表示n以内的整数
                          if(i%7!=0){
                                      sum=i;//用sum代替i是因为在后面需要拆解i,所以需要用sum代替i
                                      while(sum!=0){
                                                       if(sum%10==7){//表示判断了sum各个数位上是否有7 
                                                                          a=1;//标记哪一个是与7有关的数 
                                                        }  
                                                       sum=sum/10;//表示分解sum各位上的数
                                      }
                                      if(a==0){
                                                   sum1=sum1+i*i;
                                      }
                                      a=0;//表示返回起点
                          }
                }
                cout<<sum1;
                return 0;
}

 




posted @ 2022-03-23 10:54  大柚柚  阅读(693)  评论(0编辑  收藏  举报