t题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析 遍历全部可能,把有重复的剃掉。

这道题的解法很简单,可以用暴力枚举的方法。具体步骤如下:

  1. 从1、2、3、4中选出第一个数字,共有4种选法;
  2. 从剩下的数字中选出第二个数字,共有3种选法;
  3. 从剩下的数字中选出第三个数字,共有2种选法;
  4. 将选出的3个数字组合起来,共有4×3×2=24种组合方式。

但是,由于题目要求互不相同且无重复数字的三位数,因此需要在组合的过程中去掉重复的数字,如123、231、312这样的组合都只算一种。因此,在第二步和第三步中,选出的数字要与之前已经选过的数字进行比较,如果有相同的,则跳过本次循环。

最终,得到的结果是24个互不相同且无重复数字的三位数,分别为:

123、124、132、134、143、142、213、214、231、234、243、241、312、314、321、324、342、341、423、421、432、431、413、412。

以下是一个Python程序,实现了上述的算法:
 

count = 0  # 计数器,记录符合条件的三位数的个数

for i in range(1, 5):  # 第一个数字
    for j in range(1, 5):  # 第二个数字
        if j == i:  # 如果与第一个数字相同,则跳过本次循环
            continue
        for k in range(1, 5):  # 第三个数字
            if k == i or k == j:  # 如果与前两个数字中的任意一个相同,则跳过本次循环
                continue
            num = i * 100 + j * 10 + k  # 计算出符合条件的三位数
            count += 1
            print(num)

print("共有{}个互不相同且无重复数字的三位数。".format(count))

程序输出:

123
124
132
134
143
142
213
214
231
234
243
241
312
314
321
324
342
341
423
421
432
431
413
412
共有24个互不相同且无重复数字的三位数。