找零钱 SDUT 1223

2024-02-18 03:18
文章标签 零钱 sdut 1223

本文主要是介绍找零钱 SDUT 1223,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

我们知道人民币有1、2、5、10、20、50、100这几种面值。
现在给你n(1≤n≤250)元,让你计算换成用上面这些面额表示且总数不超过100张,共有几种。
比如4元,能用4张1元、2张1元和1张2元、2张2元,三种表示方法。

输入

输入有多组,每组一行,为一个整合n。 输入以0结束。

输出

输出该面额有几种表示方法。

示例输入

1
4
0

示例输出

1
3

提示

如果我告诉你,这题是用暴力穷举的方法,你能通过吗?^_^


如果单纯的暴力枚举肯定是会TLE的,所以需要优化一下,算过的钱要减去。

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>using namespace std;int main()
{int a,b,c,d,e,f,g,ant;int n;while(cin>>n,n!=0){ant=0;for(a=0; a<=n/100; a++)for(b=0; b<=(n-100*a)/50; b++)for(c=0; c<=(n-100*a-50*b)/20; c++)for(d=0; d<=(n-100*a-50*b-20*c)/10; d++)for(e=0; e<=(n-100*a-50*b-20*c-10*d)/5; e++)for(f=0; f<=(n-100*a-50*b-20*c-10*d-5*e)/2; f++)for(g=0; g<=(n-100*a-50*b-20*c-10*d-5*e-2*f); g++){if(a+b+c+d+e+f+g<=100&&a*100+b*50+c*20+d*10+e*5+f*2+g==n){ant++;}}printf("%d\n",ant);}return 0;
}


这篇关于找零钱 SDUT 1223的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/719872

相关文章

代码随想录训练营day37|52. 携带研究材料,518.零钱兑换II,377. 组合总和 Ⅳ,70. 爬楼梯

52. 携带研究材料 这是一个完全背包问题,就是每个物品可以无限放。 在一维滚动数组的时候规定了遍历顺序是要从后往前的,就是因为不能多次放物体。 所以这里能多次放物体只需要把遍历顺序改改就好了 # include<iostream># include<vector>using namespace std;int main(){int n,m;cin>>n>>m;std::vector<i

代码随想录算法训练营Day37|完全背包问题、518.零钱兑换II、377. 组合总和 Ⅳ、70. 爬楼梯(进阶版)

完全背包问题                  和01背包最大区别就是一个物品可以重复放多次,因此遍历空间时可以从前往后。 import java.util.*;public class Main{public static void main (String[] args) {Scanner sc = new Scanner(System.in);int m = sc.nextInt

代码随想录:322. 零钱兑换

322. 零钱兑换 class Solution {public:int coinChange(vector<int>& coins, int amount) {vector<int> dp(10005,INT_MAX);//由于后面要取最小值,所以初始大一些dp[0]=0;//总金额为0个数一定为0for(int i=0;i<coins.size();i++){for(int j=coins

微信支付商家转账到零钱:快速开通攻略及功能全解

一、申请资格与条件 哪些商家可以申请商家转账到零钱功能? 仅公司性质的商户可以申请,个体工商户当前不支持此功能。商户账号应无正在进行的处罚,且历史无风险行为。微信支付账户没有历史违规记录。商家系统已经上线并可以访问。是否需要满足开通满90天和连续交易30天的要求? 目前商家转账到零钱及现金红包功能已取消该限制,新注册公司可直接申请,无需等待。 二、申请流程 如何申请开通商家转账到零钱功能

LeetCode 算法:零钱兑换 c++

原题链接🔗:零钱兑换难度:中等⭐️⭐️ 题目 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例 1: 输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 =

518.零钱兑换2

518.零钱兑换2 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带符号整数。 示例 1: 输入:amount = 5, coins = [1, 2, 5]输出:4解释:有四种方式可以凑

SDUT OJ 2798小鑫的城堡 并查集

题目描述 从前有一个国王,他叫小鑫。有一天,他想建一座城堡,于是,设计师给他设计了好多简易图纸,主要是房间的连通的图纸。小鑫希望任意两个房间有且仅有一条路径可以相通。小鑫现在把设计图给你,让你帮忙判断设计图是否符合他的想法。比如下面的例子,第一个是符合条件的,但是,第二个不符合,因为从5到4有两条路径(5-3-4和5-6-4)。 输入 多组输入,每组第一行包含一个整数m(m

sdut 1225 编辑距离(dp)

题目描述 假设字符串的基本操作仅为:删除一个字符、插入一个字符和将一个字符修改成另一个字符这三种操作。  我们把进行了一次上述三种操作的任意一种操作称为进行了一步字符基本操作。 下面我们定义两个字符串的编辑距离:对于两个字符串a和b,通过上述的基本操作,我们可以把a变成b或b变成a,那么字符串a变成字符串b需要的最少基本字符操作步数称为字符串a和字符串b的编辑距离。 例如:a="AB

hdu 1429胜利大逃亡(续) / sdut 2193 救基友记3(BFS)

http://acm.hdu.edu.cn/showproblem.php?pid=1429 做了热身赛http://blog.csdn.net/u013081425/article/details/21740001 之后发现这道题好水,之前怎么没刷到呢。。 同样标记数组增加一维,标记到某一点时他拥有钥匙的状态,因为有10种钥匙,所以mark[][][1<<10+10]来标记每到一点的状态。

518.零钱兑换Ⅱ

给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。  题目数据保证结果符合 32 位带符号整数。 class Solution{public int change(int amount, int[] coins){// 从coin