Coin Change

一、题目

Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. We want to make changes with these coins for a given amount of money.

For example, if we have 11 cents, then we can make changes with one 10-cent coin and one 1-cent coin, or two 5-cent coins and one 1-cent coin, or one 5-cent coin and six 1-cent coins, or eleven 1-cent coins. So there are four ways of making changes for 11 cents with the above coins. Note that we count that there is one way of making change for zero cent.

Write a program to find the total number of different ways of making changes for any amount of money in cents. Your program should be able to handle up to 100 coins.
Input
The input file contains any number of lines, each one consisting of a number ( ≤250 ) for the amount of money in cents.
Output
For each input line, output a line containing the number of different ways of making changes with the above 5 types of coins.
Sample
Inputcopy Outputcopy
11
26
4
13

二、分析

题意要求使用五种面值的硬币,组成不同金额能有多少组合的方法
题目中有一个条件,硬币的数量不能超过100。
那么下面这种递推的方法就不能够控制硬币是数量

//错误代码
#include<iostream>
#include<cstring>
using namespace std;
const int maxn=1e3+5;
int dp[maxn];
int a[5]={1,5,10,25,50};
int main()
{int n;while(cin>>n){memset(dp,0,sizeof(dp));dp[0]=1;for(int i=0;i<5;i++)for(int j=a[i];j<=n;j++){dp[j]=dp[j]+dp[j-a[i]];}cout<<dp[n]<<endl;}
}

定义dp[i][j]表示i枚硬币组成j有的方法总数
这样就可以控制硬币的数量

//正确代码
#include <iostream>
#include <cstring>
using namespace std;
int dp[110][260];
// dp[i][j]表示i枚硬币组成j有的方法总数
int a[6] = {1, 5, 10, 25, 50};
int main()
{int n;while (cin >> n){memset(dp, 0, sizeof(dp));dp[0][0] = 1;for (int i = 0; i < 5; i++)for (int j = a[i]; j <= n; j++)for (int k = 1; k <= 100; k++){dp[k][j] += dp[k - 1][j - a[i]];}int ans = 0;for (int i = 0 ;i<= 100; i++)//要从0开始{ans += dp[i][n];}cout << ans << endl;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/36349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot工程使用阿里云OSS传输文件

在application.yml文件中引入对应的配置&#xff0c;一个是对应的节点&#xff0c;两个是密钥和账号&#xff0c;还有一个是对应文件的名称&#xff1b; 采用这样方式进行解耦&#xff0c;便于后期修改。 然后需要设置一个properties类&#xff0c;去读对应的配置信息 用到了…

MySQL Linux自建环境备份至远端服务器自定义保留天数

环境准备 linux下安装mysql请看 Linux环境安装单节点mysql8.0.16 系统版本: CentOS 7 软件版本: mysql8.0.16 备份策略与实现方法 此次备份依赖mysql自带命令mysqldump与linux下crontab命令(定时任务) mysqldump mysqldump客户实用程序执行 逻辑备份,产生一组能够被执行…

为什么需要知识图谱,如何构建它?

从关系数据库迁移到图形数据库的指南 跟随 发表于 迈向数据科学 7 分钟阅读 4天前 154 4 一、说明 TLDR&#xff1a;知识图谱在图数据库中组织事件、人员、资源和文档&#xff0c;以进行高级分析。本文将解释知识图谱的用途&#xff0c;并向您展示如何将关系数据模型转换为图…

HTTP协议的发展过程

前言 HTTP协议是一种用于在网络上传输信息的应用层协议&#xff0c;它为万维网的运作提供了基础。 最早的版本是HTTP/0.9&#xff0c;它是HTTP协议的第一个版本&#xff0c;诞生于1991年&#xff0c;其设计初衷是为了在计算机之间传输简单的超文本文档&#xff0c;即HTML。 在…

在Java中对XML的简单应用

XML 数据传输格式1 XML 概述1.1 什么是 XML1.2 XML 与 HTML 的主要差异1.3 XML 不是对 HTML 的替代 2 XML 语法2.1 基本语法2.2 快速入门2.3 组成部分2.3.1 文档声明格式属性 2.3.2 指令&#xff08;了解&#xff09;&#xff1a;结合CSS2.3.3 元素2.3.4 属性**XML 元素 vs. 属…

【Linux】Linux中获取UUID的方法

1、从mmc块设备获取 在Linux下,获取MMC的CID(Card Identification,识别ID) cat /sys/block/mmcblk0/device/cidMMC CID组成 MID: [127:120] —— 8bit(1Byte)Manufacturer ID,由MMCA分配,比如Sandisk为0x02,Kingston为0x37,Samsung为0x15。OID: [119:104] —— 16b…

windows程序基础

一、windows程序基础 1. Windows程序的特点 1&#xff09;用户界面统一、友好 2&#xff09;支持多任务:允许用户同时运行多个应用程序(窗口) 3&#xff09;独立于设备的图形操作 使用图形设备接口( GDI, Graphics Device Interface )屏蔽了不同硬件设备的差异&#…

什么是视频的编码和解码

这段描述中&#xff0c;视频解码能力和视频编码能力指的是不同的处理过程。视频解码是将压缩过的视频数据解开并还原为可播放的视频流&#xff0c;而视频编码是将原始视频数据压缩成更小的尺寸&#xff0c;以减少存储空间和传输带宽。在这个上下文中&#xff0c;解码能力和编码…

LVGL学习笔记 30 - List(列表)

目录 1. 添加文本 2. 添加按钮 3. 事件 4. 修改样式 4.1 背景色 4.2 改变项的颜色 列表是一个垂直布局的矩形&#xff0c;可以向其中添加按钮和文本。 lv_obj_t* list1 lv_list_create(lv_scr_act());lv_obj_set_size(list1, 180, 220);lv_obj_center(list1); 部件包含&…

Android:换肤框架Android-Skin-Support

gihub地址&#xff1a;https://github.com/ximsfei/Android-skin-support 样例&#xff1a; 默认&#xff1a; 更换后&#xff1a; 一、引入依赖&#xff1a; // -- 换肤依赖implementation skin.support:skin-support:4.0.5// skin-supportimplementation skin.support:ski…

Rust语法:变量,函数,控制流,struct

文章目录 变量可变与不可变变量变量与常量变量的Shadowing标量类型整数 复合类型 函数控制流if elseloop & whilefor in structstruct的定义Tuple Structstruct的方法与函数 变量 可变与不可变变量 Rust中使用let来声明变量&#xff0c;但是let声明的是不可变变量&#x…

Golang自定义类型与类型别名

type myInt int32 与 type myInt int32&#xff0c;概念并不相同 自定义类型&#xff1a;type myInt int32 通过这种方式定义的类型是一个全新的类型&#xff0c;这个新类型与int32有相同的底层结构&#xff0c;但是却与int32类型不兼容。 type myInt int32var a int32 5 var…

双色球彩票系统---(java实现)

双色球彩票系统&#xff1a;需求&#xff1a;投注号码由6个红色号码和1个蓝色球号码组成。红色球号码从1-33中选择&#xff0c;蓝色球号码从1-16当中选择 * 红 蓝 * 一等奖 6 1 * 二等奖 6 0 * 三等奖 5 1 * 四等奖 5 0 * 4 1 * 五等奖 4 0 * …

Blazor简单教程(1.1):Razor基础语法

文章目录 前言基本文件配置引入Layout组件 语法介绍pagecodeRazor 语法[ 显式表达和隐式表达](https://learn.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?viewaspnetcore-7.0#explicit-razor-expressions) 绑定简单绑定双向绑定带参数的函数绑定 依赖注入 前言 Blazor…

synchronized使用

目录 问题描述 1 锁方法 2 锁代码块 3 锁某个类 4 静态方法上的synchronized 当我们处理多线程处理同步问题的时候就会用到synchronized这个关键字&#xff0c;下面介绍下synchronized的四种用法。 问题描述 介绍之前我们先来看下&#xff0c;在java 多线程中 如果没有线…

leetcode1. 两数之和

题目&#xff1a;leetcode1. 两数之和 描述&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中…

QT:UI控件(按设计师界面导航界面排序)

基础部分 创建新项目&#xff1a;QWidget&#xff0c;QMainWindow&#xff0c;QDialog QMainWindow继承自QWidget&#xff0c;多了菜单栏; QDialog继承自QWidget&#xff0c;多了对话框 QMainWindow 菜单栏和工具栏&#xff1a; Bar: 菜单栏&#xff1a;QMenuBar&#xff0…

A Survey for In-context Learning

A Survey for In-context Learning 摘要&#xff1a; 随着大语言模型(LLMs)能力的增长&#xff0c;上下文学习(ICL)已经成为一个NLP新的范式&#xff0c;因为LLMs仅基于几个训练样本让内容本身增强。现在已经成为一个新的趋势去探索ICL来评价和extrapolate LLMs的能力。在这篇…

微服务06-分布式事务解决方案Seata

1、Seata 概述 Seata事务管理中有三个重要的角色: TC (Transaction Coordinator) - **事务协调者:**维护全局和分支事务的状态,协调全局事务提交或回滚。 TM (Transaction Manager) - **事务管理器:**定义全局事务的范围、开始全局事务、提交或回滚全局事务。 RM (Resourc…

Java地图专题课 基本API BMapGLLib 地图找房案例 MongoDB

本课程基于百度地图技术&#xff0c;由基础入门开始到应用实战&#xff0c;适合零基础入门学习。将企业项目中地图相关常见应用场景的落地实战&#xff0c;包括有地图找房、轻骑小程序、金运物流等。同时讲了基于Netty实现高性能的web服务&#xff0c;来处理高并发的问题。还讲…