初探贪心算法 -- 使用最少纸币组成指定金额

python实现:

python 复制代码
# 对于任意钱数,求最少张数

n = int(input("money: "))   # 输入钱数
bills = [100, 50, 20, 10, 5, 2, 1]      # 纸币面额种类
total = 0
for b in bills:
    count = n // b  # 整除面额求用的纸币张数
    if count > 0:
        print(f"{b}纸币 张数{count}")
    n -= count * b		# 更新剩余金额
    total += count		# 累加纸币数量
print(f"总共用{total}张纸币")

运行结果:

txt 复制代码
money: 231
100纸币 张数2
20纸币 张数1
10纸币 张数1
1纸币 张数1
总共用5张纸币

c++实现:

cpp 复制代码
#include <iostream>
using namespace std;

int calc(int n) {
    int count = 0;
    int total = 0;
    int b[6] = {100, 50, 10, 5, 2, 1};
    for (int i = 0; i < 6; i++) {
        count = n / b[i];
        if (count > 0) {
            total += count;
            cout << "面额" << b[i] << " " << "张数" << count << endl;
            n -= count * b[i];
        }
    }
    return total;
}

int main() {
    int result = calc(1000);
    cout << result << endl;
}
相关推荐
小小张说故事3 分钟前
Python 里 a is b 有时 True 有时 False?小整数缓存和常量折叠的底层真相
python
垆边人似月.4 分钟前
华为题:无重复字符的最长子串变种
算法
我的xiaodoujiao6 分钟前
Django 基础知识详细图文教程 16-Django 内置Admin认证系统
后端·python·django
ZGonce8198 分钟前
vLLM 使用实战:在 8GB 显卡上完成模型部署、并发压测与显存调优
python
IOT那些事儿8 分钟前
C++17和20版本差异
c++·mingw·msvc
糖果豆豆11 分钟前
灾难性遗忘不是"新旧打架"——旧知识记不住,是因为它没长成"环"
算法
垆边人似月.12 分钟前
华为题:任务调度
数据结构·c++·算法
垆边人似月.13 分钟前
华为题:编辑距离
算法·华为
会灭火的程序员14 分钟前
大模型部署硬件资源计算指南:从显存估算到显卡选型
人工智能·算法
信奥卷王21 分钟前
[GESP202506 六级] 最大因数(含视频)
数据结构·算法