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

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;
}
相关推荐
SelectDB17 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
BothSavage1 天前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法
小林ixn1 天前
从暴力到KMP:一道题彻底搞懂字符串匹配的前世今生
算法
烬羽1 天前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
郝学胜_神的一滴1 天前
CMake 034:生成器表达式:解耦构建时序、精简分支逻辑的终极利器
c++·cmake
荣码1 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
金銀銅鐵1 天前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li2 天前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
先吃饱再说2 天前
判断回文字符串,从一行代码到双指针优化
算法