- C++
【基础】既生瑜,何生亮!
- @ 2026-2-4 15:02:55
#include <bits/stdc++.h> using namespace std; bool sb(int n){ n*=n; int i=0,a[10]={0}; while(n){ if(a[n%10]!=0){ break; return false; } a[n%10]=1; n/=10; ++i; } if(i==7){ return true; } return false; } int main() { int x,y; cin>>x>>y; for(int i=x;i<=y;i++){ if(sb(i)){ cout<<i<<endl; } } return 0; }
1 条评论
-
gaohaoran LV 6 @ 2026-2-4 15:07:07
#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; }这是真的
👍 5
- 1