若某不含数字0的三位正整数,其平方数至少有三位同样的数字,则称该三位数为三重数。例如,由于:511*511=261121(有三位1),所以511为三重数。求出大于等于M小于等于N的所有三重数。 若没找到,则输出"NO FIND!"。(不包括引号),用C++完成
时间: 2024-04-15 16:31:43 浏览: 103
以下是使用 C++ 编写的程序,用于找到大于等于M小于等于N的所有三重数:
```cpp
#include <iostream>
#include <string>
#include <set>
bool isTripleNumber(int number) {
std::string str = std::to_string(number);
std::set<char> digitSet(str.begin(), str.end());
return digitSet.size() <= 1; // If the set size is 1, it means all digits are the same
}
void findTripleNumbers(int M, int N) {
bool found = false;
for (int i = M; i <= N; i++) {
if (isTripleNumber(i)) {
std::cout << i << std::endl;
found = true;
}
}
if (!found) {
std::cout << "NO FIND!" << std::endl;
}
}
int main() {
int M, N;
std::cout << "Enter the value of M: ";
std::cin >> M;
std::cout << "Enter the value of N: ";
std::cin >> N;
findTripleNumbers(M, N);
return 0;
}
```
你可以将上述代码保存为一个名为 `triple_numbers.cpp` 的文件,然后使用 C++ 编译器编译运行该程序。程序会要求你输入 M 和 N 的值,并输出大于等于 M 小于等于 N 的所有三重数。如果找不到任何三重数,则输出 "NO FIND!"。
阅读全文