【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:
main()
{
int i = 0;
int j = 0;
int k = 0;
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);
}
}
}
}
这个题目不难,好像是最常见的穷举法,算法复杂度O(n3),我也想不出来还有什么更好的算法....