题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
思路:此题给出了1,2,3,4,一个四个数字,让我们组成互不相同且不重复的三位数字,通过上面的程序分析,我们可以这样考虑,在三位数的个位,十位,百位都可以写上给出的四位数字,我们最后在所有的三位书中,减去不符合条件的数字(即要让三位数的各位都不相同),就是我们想要的数字,如下代码展示。
#include <stdio.h>
int main() {
//定义三个不同变量,为所求三位数的百位十位和个位
int i, j, k;
//利用三重for循环,将三个变量依次赋值1,2,3,4
for (i = 1; i < 5; i++) {
for (j = 1; j < 5; j++) {
for (k = 1; k < 5; k++) {
//这里,添加限制条件,使三位数的个位,十位,百位各不相同
if (i != j && i != k && j != k) {
// 打印出符合条件的所有三位数
printf("%d%d%d\n", i, j, k);
}
}
}
}
return 0;
}
通过上面的代码,我们成功实现了题目所要求的条件,生成了各不相同且互不重复的三位数,代码运行结果如下: