学习数据结构1–复习

数据结构的第一节课,结尾留下了一个思考题

给出1,2,3,4四个数字,编写程序组出所有不重复的三位数

首先想到的是排列数公式formula  ,代入数据一共有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);

简单好用,解决了问题。

但类似的排列组合问题有没有什么其他解法?

本质上是遍历一遍所有的可能,大概其他思路也差不多。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注