鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: zltzlt

[技术交流] Python:每日一题 250(答题有奖)

[复制链接]
 楼主| 发表于 2019-10-3 12:31:18 | 显示全部楼层
阴阳神万物主 发表于 2019-10-1 16:38
内个,题目不是说吗?
n = 3,k =7 时,意思不就是 7 个数的和要等于 3 吗?确实不存在啊……

呃,抱歉,搞错了……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-3 15:39:02 | 显示全部楼层
  1. from itertools import permutations

  2. def fun250(k,n):
  3.     nums = [i for i in range(1,10)]
  4.     result = []
  5.     for i in permutations(nums,3):
  6.         if sum(i) == n and sorted(i) not in result:
  7.             result.append(sorted(i))
  8.     return result
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-4 09:43:34 | 显示全部楼层
  1. from itertools import permutations as pt



  2. def func(k,n):
  3.     per = pt(range(1,10),k)
  4.     count = []
  5.     for each in per:
  6.         each = list(each)
  7.         each.sort()
  8.         if sum(each) == n:
  9.             if each not in count:
  10.                 count.append(each)
  11.     return count
  12. print(func(3,7))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-5 19:22:03 | 显示全部楼层

恭喜通过!

执行用时:40 ms
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-5 21:07:21 | 显示全部楼层
# 找出所有相加之和为 n 的 k 个数的组合。/
# 组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。


gs = int(input('请输入次数:'))
he = int(input('请输入和:'))
while True:
    if he>24:
        he = int(input('超出和的最大值,请重新输入:'))
    else:
        break


jihe = []
for a in range(1,10):
    for b in range(1,10):
        for c in range(1,10):
            if a!=b!=c and a!=c and a+b+c==he:
                jihe.append([a,b,c])
if len(jihe)==0:
    print('没有要求的组合。')
elif len(jihe)<=gs:
    for i in range(len(jihe)):
        print(jihe[i])
else:
    for i in range(gs):
        print(jihe[i])
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-6 21:26:58 | 显示全部楼层
好像没有完成第二个要求
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-24 00:08:27 | 显示全部楼层
  1. from itertools import combinations as c
  2. def f250(k,n):
  3.     L=[]
  4.     for i in c(range(1,10),k):
  5.         if sum(i)==n:
  6.             L.append(list(i))
  7.     return L
  8. print(f250(3,9))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-28 14:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表