/*
将1到9这9个数不重复的分成三组进行编写,每组三个数字组成一个数字,
要求3个3位数都是完全平方数,例如:361=19*19,529=23*23,784=28*28
组合后的数字最小是123,最大是987,所以开方以后最小是12(11....取大的)
最大的平方数是31(31....取小的)所以就用for循环从12到31(3个for循环嵌套),
看他们平方以后的数字是否占全了1-9之间的数字,如果占全了就是一种结果
*/
#include <stdio.h>
int IsRight(int);
void main()
{
int n;
for (n = 12; n <= 31;n++)
{
if ( IsRight(n * n) == 1 )
{
printf("%d = %d * %d\t",n * n,n,n);
}
}
printf("\n");
}
int IsRight( int pow )
{
int a,b,c;
a = pow / 100;
c = pow % 10;
if ( a == c )
{
return 0;
}
else
{
b = (pow % 100) /10;
if (a == b)
{
return 0;
}
else if ( b != c )
{
return 1;
}
}
}