1148: 组合三位数之一

时间:2023-01-31 00:08:35

Description

把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数。按从小到大的顺序输出这三个三位数。

Input

Output

按从小到大的顺序输出这三个三位数,由空格隔开。输出占一行。

Sample Input

Sample Output

HINT

Source


#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
int m,n,k,q,w,e;
int a[11]={0};
int find;int i;
for(m=13;m<32;m++)
{
for(n=m+1;n<32;n++)
{
for(k=n+1;k<32;k++)
{
q=m*m;
while(q>0)
{
a[q%10]++;
q/=10;
}
w=n*n;
while(w>0)
{
a[w%10]++;
w/=10;
}
e=k*k;
while(e>0)
{
a[e%10]++;
e/=10;
}
find=1;
for(i=1;i<10;i++)
{
if(a[i]!=1)
{
find=0;
break;
}
}
if(find==1)
{
printf("%d %d %d\n",m*m,n*n,k*k);
}

memset(a,0,sizeof(a));
}
}
}
return 0;
}