题解
【基础】既生瑜,何生亮!
1 条题解
-
0
解题思路
按照题目给出的规则读入数据,逐步计算结果并输出。
参考代码
// 这道题的做法:先读入题目给出的数据,再用简单的循环和判断完成要求。 #include <iostream> #include <set> using namespace std; int main() { int x, y; cin >> x >> y; for (int n = x; n <= y; n++) { long long square = (long long)n * n; // 检查平方是否为7位数 if (square < 1000000 || square > 9999999) { continue; } // 检查7个数字是否互不相同 set<int> digits; long long temp = square; bool unique = true; while (temp > 0) { int digit = temp % 10; if (digits.count(digit)) { unique = false; break; } digits.insert(digit); temp /= 10; } if (unique && digits.size() == 7) { cout << n << endl; } } return 0; }复杂度
代码只使用了简单变量、循环和判断。若循环检查了 n 个数据,时间复杂度通常为 O(n);没有开辟与输入规模相关的额外数组时,空间复杂度为 O(1)。
- 1