蓝桥杯-排他平方数
题目标题: 排它平方数
小明正看着 203879 这个数字发呆。
原来,203879 * 203879 = 41566646641
这有什么奇妙呢?细致观察。203879 是个6位数,而且它的每一个数位上的数字都是不同的,而且它平方后的全部数位上都不出现组成它自身的数字。
具有这样特点的6位数另一个,请你找出它!
再归纳一下筛选要求:
1. 6位正整数
2. 每一个数位上的数字不同
3. 其平方数的每一个数位不含原数字的不论什么组成数位
答案是一个6位的正整数。
请通过浏览器提交答案。
注意:仅仅提交还有一6位数,题中已经给出的这个不要提交。
注意:不要书写其他的内容(比方:说明性的文字)。
暴力枚举:
#include<iostream> #include<cstring> using namespace std; int vis[10]; int judge(long long int i) { while(i) { if(vis[i%10]==0) vis[i%10]++; else return 0; i/=10; } return 1; } int judge1(long long int i) { while(i) { if(vis[i%10]!=0) return 0; i/=10; } return 1; } int main() { long long int i; for(i=123456;i<=987654;i++) { memset(vis,0,sizeof(vis)); if(!judge(i)) continue; if(!judge1(i*i)) continue; cout<<i<<endl; } return 0; }