我的网站

         
当前位置: 主页 > 我的网站4 >

每天一道c语言编程题,第8题(组合无重复三位数)

时间:2024-03-05 12:27 来源:网络整理 转载:我的网站

编写一道有 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。

在枚举的过程中,需要判断百位、十位和个位数字是否互不相同且无重复数字,如果满足条件,就输出这个三位数。

因此,可以使用三重循环来实现这个过程