鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 28(答题领鱼币)

[复制链接]
发表于 2019-3-15 11:13:12 | 显示全部楼层
  1. import itertools

  2. count = 0
  3. for list1 in itertools.permutations(range(1, 10), 3):
  4.     if sum(list1) == 15:
  5.         print(list1)
  6.         print()
  7.         count += 1
  8. print(count)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-15 15:02:34 | 显示全部楼层
看看课后题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-13 23:33:18 | 显示全部楼层
list1 = [i for i in range(1,10)]
for i in list1:
    for j in list1[i:]:
        for k in list1[j:]:
            if i + j + k == 15:
                print (i,"+",j,"+",k,"= 15")

   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-14 08:07:02 | 显示全部楼层
看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-14 14:25:37 | 显示全部楼层

评分

参与人数 1荣誉 -1 鱼币 -1 收起 理由
蒋博文 -1 -1 请不要无意义灌水!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-29 13:43:00 | 显示全部楼层
好像有点繁琐
  1. l = []
  2. for i in range(1,10):
  3.     for j in range(1, 10):
  4.         for k in range(1, 10):
  5.             if i + j + k == 15:
  6.                 l.append(sorted([i, j, k]))
  7. l1 = []
  8. for t in l:
  9.     if t not in l1:
  10.         l1.append(t)
  11. print(l1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-20 17:44:18 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 07:49:18 | 显示全部楼层
a=[[x,y,z] for x in range(1,10) for y in range(1,10) for z in range(1,10) if x != y != z and x+y+z == 15]
for i in a:
    print("%d%d%d"%(i[0],i[1],i[2]))
做了个短的,不过效率可能不高
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 11:48:51 | 显示全部楼层
那先看看题啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-27 16:14:50 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-3 08:06:17 | 显示全部楼层


  1. for a in range(1,10):
  2.           for b in range(1,10):
  3.                     for c in range(1,10):
  4.                               if a+b+c == 15 and a!=b and a!=c and b!=c:
  5.                                         print('结果是%d %d %d'%(a,b,c))
  6.                                        
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-3 14:27:15 | 显示全部楼层
a = 1
while a < 10:
    b = 1
    while b < 10:
        c = 1
        while c < 10:
            if a + b + c ==15:
                print(a, b, c, "加起来等于15")
            c = c +1
        b = b+ 1
    a = a + 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-3 13:52:23 | 显示全部楼层
import itertools as A
B = A.permutations(range(1,10),3)
for i in B:
    if sum(i)==15:
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-3 17:54:23 | 显示全部楼层
list1 = list(range(1,10))
for i in range(0,9):
    for j in range(i+1,9):
        for k in range(i+2,9):
            if list1[i] + list1[j] + list1[k] == 15:
                if list1[i] != list1[j] and list1[i] != list1[k] and list1[j] != list1[k]:
                    list2 = sorted([list1[i],list1[j],list1[k]])
                    print('the sequence is %s'%list2)
                else:
                    pass
            else:
                pass
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-29 11:36:50 | 显示全部楼层
  1. count=0
  2. for a in range(1,10):
  3.     for b in range(1,10):
  4.         for c in range(1,10):
  5.             if a+b+c == 15:
  6.                 if a!=b and a!=c and b!=c:
  7.                     print(a,b,c)
  8.                     count+=1
  9. print('共有%d种可能'%count)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-27 17:35:17 | 显示全部楼层
  1. """
  2. 个人拙见:
  3. 1. 数字可重复使用,如 (5, 5, 5)
  4. 2. (4, 5, 6) 与 (6, 5, 4) 为一种解

  5. 令左、中、右(单调不减)三个数字为 l, m, r
  6. / l + m >= 15 - 9 => m >= 3
  7. |                             => 3 <= m <= 7  => m = 5 时,l 取得最大值 5
  8. \ m + r <= 15 - 1 => m <= 7
  9. r 可由 15 - l - m 得到
  10. """

  11. def solve():
  12.     cnt = 0
  13.     for m in range(3, 8):
  14.         for l in range(1, 6):
  15.             r = 15 - l - m
  16.             if r > 9:
  17.                 continue
  18.             elif r < m or m < l:
  19.                 break
  20.             else:
  21.                 cnt += 1
  22.                 print(f"No.{cnt:0>2}: {l} {m} {r}")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 18:20:08 | 显示全部楼层
  1. list1 = []
  2. for x in range(1,10):
  3.     for y in range(1,10):
  4.         z = 15-x-y
  5.         if 0 < x < y < z < 10:
  6.             list1.append([x,y,z])
  7. print(f'共有{len(list1)}种组合:', list1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 21:20:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-12 21:39:32 | 显示全部楼层
本帖最后由 bensonlin 于 2020-3-12 21:43 编辑

for a in range(1,8):
    for b in range(1,(15-a)//2+1):
        print(a, b, 15-a-b)

运行结果:(1, 1, 13)
(1, 2, 12)
(1, 3, 11)
(1, 4, 10)
(1, 5, 9)
(1, 6, 8)
(1, 7, 7)
(2, 1, 12)
(2, 2, 11)
(2, 3, 10)
(2, 4, 9)
(2, 5, 8)
(2, 6, 7)
(3, 1, 11)
(3, 2, 10)
(3, 3, 9)
(3, 4, 8)
(3, 5, 7)
(3, 6, 6)
(4, 1, 10)
(4, 2, 9)
(4, 3, 8)
(4, 4, 7)
(4, 5, 6)
(5, 1, 9)
(5, 2, 8)
(5, 3, 7)
(5, 4, 6)
(5, 5, 5)
(6, 1, 8)
(6, 2, 7)
(6, 3, 6)
(6, 4, 5)
(7, 1, 7)
(7, 2, 6)
(7, 3, 5)
(7, 4, 4)
37种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 21:46:01 | 显示全部楼层
我这是第一次答题
你这答案不对啊,1+7+7 和7+1+7和7+7+1反复出现了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 04:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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