- C++
诸生瑜,周生亮
- @ 2026-2-4 15:23:51
#include <iostream>
using namespace std;
// 检查平方数是否是7位数
bool is7Digits(long long num) {
return num >= 1000000 && num <= 9999999;
}
// 检查7位数的各位数字是否互不相同
bool allDigitsDifferent(long long num) {
int digits[7]; // 存储7位数字
bool used[10] = {false}; // 标记0-9数字是否已使用
// 提取每一位数字
for (int i = 0; i < 7; i++) {
digits[i] = num % 10;
num /= 10;
// 检查该数字是否已使用过
if (used[digits[i]]) {
return false; // 有重复,不符合条件
}
used[digits[i]] = true; // 标记该数字已使用
}
return true; // 所有数字都不重复
}
int main() {
int x, y;
cin >> x >> y;
// 由于平方是7位数,原数应该在1000到3162之间
// 但题目给定x,y在1000-9999之间,我们只需判断平方是否为7位数即可
for (int i = x; i <= y; i++) {
long long square = (long long)i * i; // 计算平方
// 检查平方是否为7位数且各位数字互不相同
if (is7Digits(square) && allDigitsDifferent(square)) {
cout << i << endl; // 输出原数
}
}
return 0;
}
0 条评论
目前还没有评论...