会c语言的来,麻烦各位大侠了。我怎么做都不对~~
1—9组成三个3位的平方数将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不许有重复数字,也不许同其它组的三个数字重复,要求每组中的...
1—9组成三个3位的平方数
将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不许有重复数字,也不许同其它组的三个数字重复,要求每组中的三位数都组成一个平方数。
问题分析与算法设计
首先求出三位数中不包含0且是某个整数平方的三位数,这样的三位数是不多的。然后将
满足条件的三位数进行组合,使得所选出的3个三位数的9个数字没有重复。程序中可以将寻找满足条件三位数的过程和对该三位数进行数字分解的过程结合起来。 展开
将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不许有重复数字,也不许同其它组的三个数字重复,要求每组中的三位数都组成一个平方数。
问题分析与算法设计
首先求出三位数中不包含0且是某个整数平方的三位数,这样的三位数是不多的。然后将
满足条件的三位数进行组合,使得所选出的3个三位数的9个数字没有重复。程序中可以将寻找满足条件三位数的过程和对该三位数进行数字分解的过程结合起来。 展开
2个回答
展开全部
(1)用于产生三位数中不包含0且是某个整数平方的三位数,且满足三位数的各个数字不重复。
(片断)……
int i,j,m,a[30],x,y,z;
j=0;
for(i=10,i<32,i++)
{m=i*i; x=m%10; y=m%100; z=m%1000;
if(x!=y)&&(x!=z)&&(y!=z)&&(x*y*z!=0) /*三位数的各个数字不为0,且不重复。
{a[j]=m; j++} /*将这些数存在数组a[]中
}
m=j; /*记录这些数的个数,ii)会用到。
(2)将满足条件的三位数进行组合,使得所选出的3个三位数之间9个数字没有重复。
i).先定义一个函数,用于对比两个三位数字,重复-返回0;不重复-返回1.
int comp(int a,int b)
{int t,flag=1;
t=a;
while(t)
{t=t%10;
if(t==b%10)‖(t==b%100)‖(t==b%1000)
{flag=0; return 0; break;}
}
if (flag) return 1;
}
ii).求结果(片断)
……
int i,j,k,num;
num=0;
for(i=0;i<m-2;i++) /*这里的m指的是满足(1)条件的三位的个数
for(j=i+1;j<m-1;j++)
for(k=j+1;k<m;j++)
if(comp(a[i],a[j])&&comp(a[i],a[k])&&comp(a[j],a[k])) /*调用
{num++;
printf("第%d种:%d,%d,%d/n",num,a[i],a[j],a[k]);}
printf("共有%d种/n",num);
*以上是个人的一些想法,希望对你有帮助。
(片断)……
int i,j,m,a[30],x,y,z;
j=0;
for(i=10,i<32,i++)
{m=i*i; x=m%10; y=m%100; z=m%1000;
if(x!=y)&&(x!=z)&&(y!=z)&&(x*y*z!=0) /*三位数的各个数字不为0,且不重复。
{a[j]=m; j++} /*将这些数存在数组a[]中
}
m=j; /*记录这些数的个数,ii)会用到。
(2)将满足条件的三位数进行组合,使得所选出的3个三位数之间9个数字没有重复。
i).先定义一个函数,用于对比两个三位数字,重复-返回0;不重复-返回1.
int comp(int a,int b)
{int t,flag=1;
t=a;
while(t)
{t=t%10;
if(t==b%10)‖(t==b%100)‖(t==b%1000)
{flag=0; return 0; break;}
}
if (flag) return 1;
}
ii).求结果(片断)
……
int i,j,k,num;
num=0;
for(i=0;i<m-2;i++) /*这里的m指的是满足(1)条件的三位的个数
for(j=i+1;j<m-1;j++)
for(k=j+1;k<m;j++)
if(comp(a[i],a[j])&&comp(a[i],a[k])&&comp(a[j],a[k])) /*调用
{num++;
printf("第%d种:%d,%d,%d/n",num,a[i],a[j],a[k]);}
printf("共有%d种/n",num);
*以上是个人的一些想法,希望对你有帮助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询