将1到9这9个数不重复的分成三组进行编写,每组三个数字组成一个数字,要求3个3位数都是完全平方数,例如:361=19*19,529=23*23,784=28*28
希望各位高手踊跃发表看法,编一编
inmail:cuibo110@126.com



将1到9这9个数不重复的分成三组进行编写,每组三个数字组成一个数字,要求3个3位数都是完全平方数,例如:361=19*19,529=23*23,784=28*28
希望各位高手踊跃发表看法,编一编
inmail:cuibo110@126.com
#include "math.h"
main()
{ int i,j,k,s,t;
for(i=1;i<=9;i++)
{ for(j=1;j<=9;j++)
{ if(j==i) continue;
for(k=1;k<=9;k++)
{ if(k==i||k==j) continue;
s=i*100+j*10+k;
t=sqr(s);
if(s==t*t) printf("%d=%d*%d",s,t,t);
}
}
}
}
能写成这样子就不错了
我什么都不懂,我来看看高手是怎么解决这个问题的。
#include <stdio.h> void fun(int T[],int b); int fun2(int T[]); void fun3(int T[]); main() { int T[9]={0}; int a0,a1,a2; for(a0=11;a0<31;a0++) for(a1=a0+1;a1<31;a1++) for(a2=a1+1;a2<31;a2++) { fun(T,a0*a0); fun(T,a1*a1); fun(T,a2*a2); if(fun2(T))printf("%d %d %d\n",a0,a1,a2); fun3(T); }
} void fun(int T[],int b) { while(b) { T[b%10-1]=1; b/=10; } } int fun2(int T[]) { int i;
for(i=0;i<9;i++) { if(!T[i])return 0; } return 1; } void fun3(int T[]) { int i;
for(i=0;i<9;i++) { T[i]=0; }
}