|
deepseek做的第3题
- def count_valid_numbers():
- # 定义数字及其最大出现次数
- digits = [1, 2, 3, 4]
- max_counts = {1: 1, 2: 2, 3: 3, 4: 4}
-
- # 用于存储所有符合条件的组合
- valid_numbers = set()
-
- # 递归函数
- def backtrack(current, counts):
- # 如果当前组合不为空,则将其加入结果集
- if current:
- valid_numbers.add(current)
-
- # 尝试添加下一个数字
- for d in digits:
- # 检查当前数字的出现次数是否超过限制
- if counts.get(d, 0) < max_counts[d]:
- # 更新当前数字的出现次数
- new_counts = counts.copy()
- new_counts[d] = new_counts.get(d, 0) + 1
- # 递归生成更长的组合
- backtrack(current + str(d), new_counts)
-
- # 从空字符串开始递归
- backtrack("", {})
-
- # 返回符合条件的组合数量
- return len(valid_numbers)
- # 调用函数并输出结果
- result = count_valid_numbers()
- print(f"符合条件的正整数共有:{result} 个")
复制代码 |
|