描述
一个正整数,如果它能被7整除,或者它的十进制表示法中某一位上的数字为7,则称其为与7相关的数.现求所有小于等于n(n < 100)的与7无关的正整数的平方和。
输入
输入为一行,正整数n(n < 100)
输出
输出一行,包含一个整数,即小于等于n的所有与7无关的正整数的平方和。
样例输入
21
样例输出
2336
题意
找出n以内所有与7无关数( 不能被7整除,并且各个数位没有7)的平方和;
解题思路
用for找出所有小于等于n的数,先用if判断这个数是否能被7整除,再用一个变量b代替i,再用while来算出b各个位上的数是否等于7,最后求出i的平方和并输出。
代码实现
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a=0,s=0,b;
cin>>n;
for(int i=1;i<=n;i++){// i代表了n以内的数
if(i%7!=0){
b=i;//用b代替了i是因为在后面需要拆解i,所以应用b代替了i
while(b!=0){
if(b%10==7){//表示判断了b各个数位上是否有7
a=1;//标记哪一个数是与7有关的
}
b=b/10;// 表示分解b各位上的数
}
if(a==0){
s=s+i*i;
}
a=0;//表示返回起点
}
}
cout<<s<<endl;
return 0;
}