adnss

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

描述
一个正整数,如果它能被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 on 2022-12-10 16:49  生吃椒盐小孩  阅读(138)  评论(0编辑  收藏  举报