python的基础以及提高

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

2020-04-02  本文已影响0人  g_s_007

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

题目

小明有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种

上一篇 下一篇

猜你喜欢

热点阅读