您的位置:首页 > 其它

排它平方数

2016-06-12 09:02 211 查看

排它平方数

小明正看着 203879 这个数字发呆。
原来,203879 * 203879 = 41566646641

这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。

具有这样特点的6位数还有一个,请你找出它!

再归纳一下筛选要求:
1. 6位正整数
2. 每个数位上的数字不同
3. 其平方数的每个数位不含原数字的任何组成数位
答案是一个6位的正整数。


#include <iostream>
using namespace std;
#include <cstdio>
#include <cstring>

bool judge(int n)
{
int num = n;
bool vis[10];
memset(vis, false, sizeof(vis));
while(num)
{
int tmp = num % 10;
num /= 10;
if(vis[tmp])
return false;
vis[tmp] = true;
}
long long n1 = (long long)n * n;
while(n1)
{
int tmp = n1 % 10;
n1 /= 10;
if(vis[tmp])
return false;
}
return true;
}

int main()
{
for(int i = 123456; i <= 987654; ++i)
if(judge(i))
cout << i << endl;
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  排它平方数 算法