A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 敖致林 中级黑马   /  2015-3-26 07:28  /  1173 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

6 个回复

倒序浏览
三重循环:
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
楼上可行但是这样性能不好。

为什么?
回复 使用道具 举报

这题我感觉还有其他思路我一会想想,for循环和递归都很耗内存的。
回复 使用道具 举报
marswawa 发表于 2015-3-26 07:59
这题我感觉还有其他思路我一会想想,for循环和递归都很耗内存的。

期待你的解答~
回复 使用道具 举报
一会我想下思路哈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马