一个十进制的正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.求小于n(n<100)的所有与7无关的正整数的平方和,用c++求解其代码
时间: 2024-09-23 12:01:22 浏览: 19
在C++中,我们可以编写一个函数来找到所有小于给定整数n且与7无关的正整数,并计算它们的平方和。以下是解决这个问题的一种方法:
```cpp
#include <iostream>
#include <vector>
using namespace std;
bool isRelatedToSeven(int num) {
// 检查数字是否可以被7整除
if (num % 7 == 0)
return false;
// 检查数字的每一位是否包含数字7
while (num > 0) {
int digit = num % 10;
if (digit == 7)
return true;
num /= 10;
}
return false;
}
int squareSumOfUnrelatedNumbers(int n) {
int sum = 0;
for (int i = 1; i * i < n && !isRelatedToSeven(i); ++i) {
sum += i * i;
}
return sum;
}
int main() {
int n;
cout << "请输入一个小于100的整数n: ";
cin >> n;
int result = squareSumOfUnrelatedNumbers(n);
cout << "小于" << n << "的所有与7无关的正整数的平方和是: " << result << endl;
return 0;
}
```
这个程序首先定义了一个`isRelatedToSeven`函数检查一个数是否与7有关,然后在`squareSumOfUnrelatedNumbers`函数中遍历从1到sqrt(n),找出符合条件的数并累加其平方。