编写一道有 1、2、3、 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #include int main() int i, j, k, count = 0; for (i = 1; i <= 4; i++) { for (j = 1; j <= 4; j++) { if (j == i) continue; // 十位数字不能和百位数字相同 for (k = 1; k <= 4; k++) { if (k == i || k == j) continue; // 个位数字不能和百位、十位数字相同 printf("%d%d%d\n", i, j, k); count++; printf("共%d个三位数\n", count); return 0; 题目要求组成互不相同且无重复数字的三位数,那么我们可以先枚举百位数字,再枚举十位数字,最后枚举个位数字。而在枚举的过程中,需要注意一下几点: 百位数字的取值范围是 1 到 4,因为只有 1、2、3、4 这四个数字可以组成三位数。 十位数字的取值范围是除去百位数字后的剩余数字,即如果百位数字是 1,那么十位数字只能是 2、3、4 中的两个数字。 同理,个位数字的取值范围是除去百位和十位数字后的剩余数字,即如果百位数字是 1,十位数字是 2,那么个位数字只能是 3 或 4。 在枚举的过程中,需要判断百位、十位和个位数字是否互不相同且无重复数字,如果满足条件,就输出这个三位数。 因此,可以使用三重循环来实现这个过程 |