描述
一個正整數,如果它能被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;
}