能组成多少个互不相同的无重复数字的三位数?都是多少?C语言代码
时间: 2024-11-27 07:21:20 浏览: 14
一个无重复数字的三位数可以由0到9这十个数字中的任意三个组成,但首位不能是0。因此,我们可以将这三个位置想象成从10个数字中选择3个的组合问题。总的组合数可以用公式计算:C(10, 3) = 10! / (3!(10-3)!),其中“!”表示阶乘。
计算结果是 C(10, 3) = 10 * 9 * 8 / (3 * 2 * 1) = 720种可能的三位数。
至于具体的每一位数字,第一位有9种选择(因为它不能是0),第二位有9种选择(除了第一位选的那个),第三位还有8种选择(因为前两位已经确定)。所以每一个三位数组合可以用嵌套循环的方式来生成:
```c
#include <stdio.h>
int main() {
int i, j, k;
for (i = 1; i <= 9; i++) { // 首位
for (j = 0; j < 9; j++) { // 十位
if (j != i) { // 确保十位不是首位
for (k = 0; k < 9; k++) { // 百位
if (k != i && k != j) { // 确保百位不是首位和十位
printf("%d%d%d\n", i, j, k); // 输出三位数
}
}
}
}
}
return 0;
}
```
这段代码会打印出所有满足条件的互不相同的三位数。
阅读全文