楼主: newkid

[每日一题] 2022 PUZZLEUP

[复制链接]
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
211#
发表于 2025-2-17 15:37 | 只看该作者
deepseek做的第3题

  1. def count_valid_numbers():
  2.     # 定义数字及其最大出现次数
  3.     digits = [1, 2, 3, 4]
  4.     max_counts = {1: 1, 2: 2, 3: 3, 4: 4}
  5.    
  6.     # 用于存储所有符合条件的组合
  7.     valid_numbers = set()
  8.    
  9.     # 递归函数
  10.     def backtrack(current, counts):
  11.         # 如果当前组合不为空,则将其加入结果集
  12.         if current:
  13.             valid_numbers.add(current)
  14.         
  15.         # 尝试添加下一个数字
  16.         for d in digits:
  17.             # 检查当前数字的出现次数是否超过限制
  18.             if counts.get(d, 0) < max_counts[d]:
  19.                 # 更新当前数字的出现次数
  20.                 new_counts = counts.copy()
  21.                 new_counts[d] = new_counts.get(d, 0) + 1
  22.                 # 递归生成更长的组合
  23.                 backtrack(current + str(d), new_counts)
  24.    
  25.     # 从空字符串开始递归
  26.     backtrack("", {})
  27.    
  28.     # 返回符合条件的组合数量
  29.     return len(valid_numbers)

  30. # 调用函数并输出结果
  31. result = count_valid_numbers()
  32. print(f"符合条件的正整数共有:{result} 个")
复制代码

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表