如果一个十进制的正整数能够被7整除,或者某个位置的数字是7,则称该正整数为与7相关的数。求小于n(n<100)的所有与7无关的正整数的平方和。C++
时间: 2024-10-29 20:14:25 浏览: 5
如果我们要找到小于n的所有与7无关的正整数的平方和,可以按照以下步骤编写C++程序:
1. 首先,我们需要遍历所有小于n的正整数。
2. 对于每个数i,检查它是否与7有关。我们可以通过检查i是否能被7整除,以及i的每一位(转换成字符串后)是否有字符 '7' 来判断。
3. 如果i与7无关,就将其加入到结果总和s中。
4. 循环结束后返回总和s。
下面是一个简单的C++函数实现这个功能:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool isRelatedToSeven(int num) {
// 检查是否能被7整除
if (num % 7 == 0) return true;
// 将数字转为字符串并逐位检查
string str = to_string(num);
for (char c : str) {
if (c == '7') return true;
}
return false;
}
int sumOfNonRelatedSquares(int n) {
int result = 0;
for (int i = 1; i < n; ++i) { // 从1开始,因为1^2 = 1,不需要额外处理
if (!isRelatedToSeven(i)) {
result += i * i; // 只有当i与7无关才累加其平方
}
}
return result;
}
int main() {
int n;
cout << "请输入一个小于100的值:";
cin >> n;
int squareSum = sumOfNonRelatedSquares(n);
cout << "小于" << n << "且与7无关的正整数的平方和为:" << squareSum << endl;
return 0;
}
```
阅读全文