数据结构的第一节课,结尾留下了一个思考题
给出1,2,3,4四个数字,编写程序组出所有不重复的三位数
首先想到的是排列数公式 ,代入数据一共有24个三位数。
emmmm
首先想到的解法十分暴力,列出所有的三位数进行检验。鉴于其过于暴力,因此直接放弃。
依据数数的自然思路:
for(int a=1;a<=4;++a)
for(int b=1;b<=4;++b)
for(int c=1;c<=4;++c)
if(a!=b && a!=c && b!=c)
printf(“%d%d%d\n”,a,b,c);
简单好用,解决了问题。
但类似的排列组合问题有没有什么其他解法?
本质上是遍历一遍所有的可能,大概其他思路也差不多。