Python初学者:职员,最小数量的账单

2024-05-22 18:16:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助解决计算机科学的下列问题

店员在一家商店工作,那里每件商品的成本是正整数美元。比如说, 有些东西可能要21美元,但没有东西要9.99美元。 为了换零钱,职员有一个无界的号码 包括下列面额的钞票:1美元、2美元、5美元、10美元和20美元。在

写一个需要两个的过程 参数,一个项目的成本和支付的金额,并打印如何使用最小的更改 可能的账单数量。在


Tags: 项目参数过程金额商品号码商店成本
1条回答
网友
1楼 · 发布于 2024-05-22 18:16:08

因为我也是初学者,所以我将把它作为python的练习。请参见以下代码:

def pay_change(paid, cost):
    # set up the change and an empty dictionary for result
    change = paid - cost
    result = {}

    # get the result dictionary values for each bill
    n_twenty = change // 20
    result['$20'] = n_twenty
    rest = change % 20

    n_ten = rest // 10
    result['$10'] = n_ten
    rest = rest % 10

    n_five = rest // 5
    result['$5'] = n_five
    rest = rest % 5

    n_two = rest // 2
    result['$2'] = n_two
    rest = rest % 2

    n_one = rest // 1
    result['$1'] = n_one

    # print(result) if you want to check the result dictionary

    # present the result, do not show if value is 0
    for k, v in result.items():
        if v != 0:
            print('Need', v, 'bills of', k)

逻辑是假设变化超过20,然后通过使用//缓慢计算,然后使用%计算其余的。不管怎样,我们最终会得到一本字典,它给出了每一美元钞票需要多少钞票。在

然后,对于那些值为0的美元钞票,我们不需要显示它们,所以我编写了一个for循环来检查字典中的值。在

好了,现在我简化了代码,以避免重复代码片段,我很满意:

^{pr2}$

相关问题 更多 >

    热门问题