You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.x中用if-else语句计算最小纸币数量求助

用Python实现最少卢比纸币找零(if-else版)

要得到最少数量的纸币,核心思路是贪心算法:优先使用面额大的纸币,依次向下处理。以下是完全用if-else语句实现的代码:

# 读取输入金额
amount = int(input("请输入金额A:"))

# 初始化各面额纸币数量
hundred = 0
fifty = 0
ten = 0
one = 0
remaining = amount

# 计算100卢比纸币数量
if remaining >= 100:
    hundred = remaining // 100
    remaining = remaining % 100
else:
    hundred = 0

# 计算50卢比纸币数量
if remaining >= 50:
    fifty = 1
    remaining -= 50
else:
    fifty = 0

# 计算10卢比纸币数量
if remaining >= 10:
    ten = remaining // 10
    remaining = remaining % 10
else:
    ten = 0

# 剩余金额全部用1卢比纸币
one = remaining

# 输出结果
print(f"100卢比:{hundred}张")
print(f"50卢比:{fifty}张")
print(f"10卢比:{ten}张")
print(f"1卢比:{one}张")

代码说明

  • 先读取输入的金额并转为整数(假设输入为整数金额)
  • 用remaining变量跟踪剩余未处理的金额
  • 对每个面额,用if-else判断剩余金额是否足够使用该面额:
    • 100卢比:计算能整除的数量,直接取商,剩余金额取余数
    • 50卢比:剩余金额最多99,因此最多使用1张
    • 10卢比:计算整除的数量,剩余金额取余数
    • 最后剩下的金额全部用1卢比纸币

示例输入267的输出:

100卢比:2张
50卢比:1张
10卢比:1张
1卢比:7张

总纸币数为11张,是最少的组合数量。

内容的提问来源于stack exchange,提问作者Mourya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 05:27:11