1~9组成三个3位数的平方数。将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不许有重复数字,要求每组中的三位数都组成一个平方数 **输入格式要求:提示信息:"The 3 squares with 3 different digits each are:n" **输出格式要求:"%d,%d,%dn" 程序运行示例如下: The 3 squares with 3 different digits each are: 361,529,784
#include#include int check(int a[3],int b[3]); // 若两个用数组保存的三位数有重复元素,返回1;若没有,返回0 int main() { int num[21][3],t[3],a[3],b[3],c[3],flag; int i,j,k,n,m; //将所有合法三位数写入数组num。 for(i=11,j=0;i<=31;i++) { m=pow(i,2); if(m%10!=0) { t[0]=m/100; t[1]=(m/10)%10; t[2]=m%10; if(t[0]!=t[1]&&t[1]!=t[2]&&t[0]!=t[2]) { num[j][0]=t[0]; num[j][1]=t[1]; num[j][2]=t[2]; j++; } } } n=j;//k记录了合法的三位数个数 printf("符合要求的3个三位数为:n"); // 回溯法:使用三个嵌套的for循环来进行搜索,使用if语句实现剪枝 for(i=0;i



