当前位置: 代码迷 >> C语言 >> 探讨一个小程序 !
  详细解决方案

探讨一个小程序 !

热度:233   发布时间:2006-08-29 17:12:12.0
探讨一个小程序 !

今天没事看了编程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");
}

其实我也是看了那个程序才想到不连续的数字的 排序的~


----------------解决方案--------------------------------------------------------
  相关解决方案