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

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;
}
相关推荐
Hello eveybody几秒前
介绍一下背包DP(Python)
开发语言·python·动态规划·dp·背包dp
2301_7950997413 分钟前
让 CSS Grid 自适应容器尺寸的动态布局方案
jvm·数据库·python
AI进化营-智能译站17 分钟前
ROS2 C++开发系列12-用多态与虚函数构建可扩展的ROS2机器人行为模块
开发语言·c++·ai·机器人
呆萌的代Ma18 分钟前
python读取并加载.env的配置文件
python
Muyuan199819 分钟前
27.RAG 系统中的上下文充分性判断:从 Chunk 数量、FAISS 距离到 LLM Relevance Gate
python·django·pdf·fastapi·faiss
晨曦夜月25 分钟前
map与unordered_map区别
算法·哈希算法
Morwit27 分钟前
QML组件之间的通信方案(暴露子组件)
c++·qt·职场和发展
qeen8739 分钟前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
图码1 小时前
如何用多种方法判断字符串是否为回文?
开发语言·数据结构·c++·算法·阿里云·线性回归·数字雕刻
U盘失踪了1 小时前
python curl转python脚本
开发语言·chrome·python