黑马程序员技术交流社区

标题: 经典c语言小程序,你会做吗? [打印本页]

作者: 敖致林    时间: 2015-3-26 07:28
标题: 经典c语言小程序,你会做吗?
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

作者: 敖致林    时间: 2015-3-26 07:30
三重循环:
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);
    }
}
很简单
作者: marswawa    时间: 2015-3-26 07:40
楼上可行但是这样性能不好。
作者: 敖致林    时间: 2015-3-26 07:42
marswawa 发表于 2015-3-26 07:40
楼上可行但是这样性能不好。

为什么?
作者: marswawa    时间: 2015-3-26 07:59
敖致林 发表于 2015-3-26 07:42
为什么?

这题我感觉还有其他思路我一会想想,for循环和递归都很耗内存的。
作者: 完美世界    时间: 2015-3-26 09:07
marswawa 发表于 2015-3-26 07:59
这题我感觉还有其他思路我一会想想,for循环和递归都很耗内存的。

期待你的解答~

作者: marswawa    时间: 2015-3-26 09:16
一会我想下思路哈。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2