美文网首页python的基础以及提高
python 实现买书问题-使用itertools处理列表

python 实现买书问题-使用itertools处理列表

作者: g_s_007 | 来源:发表于2020-04-02 15:34 被阅读0次

本代码只是个人理解,如果错误,请不吝指正

题目

小明有100元钱 打算买100本书,A类书籍5元一本,B类书籍3元一本,C类书籍1元两本,请用程序算出小明一共有多少种买法?

代码如下:

from itertools import product


def buy_books(money, book):
    """计算买书的几种方式"""
    a_list = [a for a in range(int(money/5))]
    b_list = [b for b in range(int(money/3))]
    c_list = [c for c in range(book+1)]
    num  = 0
    for a, b, c in product(a_list, b_list, c_list):
        if a * 5 + b * 3 + c * 0.5 == money and a + b + c == book:
            print('5元书买{}本,3元书买{}本,1元书买{}本'.format(a, b, c))
            num += 1
    return num

if __name__ == '__main__':
    money = 100
    book = 100
    num = buy_books(money, book)
    print(f"总共有{num}种买法")

结果:3种

相关文章

网友评论

    本文标题:python 实现买书问题-使用itertools处理列表

    本文链接:https://www.haomeiwen.com/subject/agpxphtx.html