测x[0]和x[1]中的各位数k是否已出现,即对应的used[k]是否为1。
(2)源程序及运行结果。
#include <iostream>
using namespace std;
int check(int x,int used[10])
{
do {
if(used[x%10] > 0)
return 0;
else
used[x % 10]++;
}while(x /= 10);
return 1;
}
int checkpower(int x[],int used[10])
{
do {
if(used[x[0]%10] > 0) {
return 0;
}
} while(x[0]/=10);
for (int i=1;i<=8;i++)
{
if(used[x[1]%10] > 0)
return 0;
x[1]=x[1]/10;
}
return 1;
}
int main()
{
int i,a,b,c,x[2];
int k,used[10];
for(i=123456; i<=987654; i++)
{
for (k=0;k<=9;k++)
used[k]=0;
if(!check(i,used))
continue;
a=i/10000; b=i%10000;
x[0]=a*a; x[1]=b*b;
c=2*a*b;
x[1]=x[1]+c%10000*10000;
x[0]=x[0]+c/10000;
x[0]=x[0]+x[1]/100000000;
&nb