探讨一个小程序 !
今天没事看了编程100,有个程是说 :有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
那我能不能把这几个数字还成1,4,6,7,9,3,,这样题目又该怎么做呢 ?或者
----------------解决方案--------------------------------------------------------
或者我又想了 能不能就把 1代替1,2代替4,3代替6,4代替7,5代替9,6代替3,就直接用 1,2,3,4,5,6实现功能,最后再转换成原来的数字,可是这个转换过程不知道怎么实现,希望各位 帮 帮忙 !
----------------解决方案--------------------------------------------------------
兄台,是否学过(数学)排列与组合???
----------------解决方案--------------------------------------------------------
曾经学过,还请指点!
----------------解决方案--------------------------------------------------------
我也想看看 转换 过程
----------------解决方案--------------------------------------------------------
刚才想了一下,觉得下面好像貌似是个 解决方案~
还请多指点 :
#include "stdio.h"
void main()
{
int a[]={1,3,5,6};//这个里面可以自己定义一些数字了
int i,j,k;
for( i = 0; i<4; i++)
for(j = 0; j<4; j++)
for(k = 0; k<4; k++)
{
if((a[i]!=a[j]) && (a[j]!=a[k]) && (a[k]!=a[i]))
printf("%d%d%d ",a[i],a[j],a[k]);
}
printf("\n");
}
----------------解决方案--------------------------------------------------------
也可以用define定义常量
需要修改时改下常量值就行
----------------解决方案--------------------------------------------------------
晕啊 没想到数组啊
受了这个程序的误导了
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++) /*以下为三重循环*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
----------------解决方案--------------------------------------------------------
#include "stdio.h"
void main()
{
int a[]={1,4,6,7,9,3};//这个里面可以自己定义一些数字了
int i,j,k;
for( i = 0; i<6; i++)
for(j = 0; j<6; j++)
for(k = 0; k<6; k++)
{
if((a[i]!=a[j]) && (a[j]!=a[k]) && (a[k]!=a[i]))
printf("%d%d%d ",a[i],a[j],a[k]);
}
printf("\n");
}
----------------解决方案--------------------------------------------------------
以下是引用神经塔在2006-8-29 22:13:20的发言:
#include "stdio.h"
void main()
{
int a[]={1,4,6,7,9,3};//这个里面可以自己定义一些数字了
int i,j,k;
for( i = 0; i<6; i++)
for(j = 0; j<6; j++)
for(k = 0; k<6; k++)
{
if((a[i]!=a[j]) && (a[j]!=a[k]) && (a[k]!=a[i]))
printf("%d%d%d ",a[i],a[j],a[k]);
}
printf("\n");
}
#include "stdio.h"
void main()
{
int a[]={1,4,6,7,9,3};//这个里面可以自己定义一些数字了
int i,j,k;
for( i = 0; i<6; i++)
for(j = 0; j<6; j++)
for(k = 0; k<6; k++)
{
if((a[i]!=a[j]) && (a[j]!=a[k]) && (a[k]!=a[i]))
printf("%d%d%d ",a[i],a[j],a[k]);
}
printf("\n");
}
其实我也是看了那个程序才想到不连续的数字的 排序的~
----------------解决方案--------------------------------------------------------