给你一个题目,请描述思路和关键代码实现:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。
区块链毕设网qklbishe.com为您提供问题的解答
给你一个题目,请描述思路和关键代码实现:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。
思路:硬币从面额高到低进行选取,尽量多选面额高的硬币,每次选了币都要让总金额减少,并且累加硬币总数;当剩余总金额小于一枚硬币的此时面额,则选取次大面额的硬币,然后重复上述操作,直到剩余总金额减少到0. 关键代码: int shushu(int num,int amount){ // num是不同面额硬币的种类数 int coins[num],count=0,zs=num; for(int i=0;i<num>>coin[i]; sort(coins,coins+num); while(amount>0){ count=count+amount/coins[zs]; amount=amount%coins[zs];zs–; } return count; } </num>
11:08
以上就是关于问题给你一个题目,请描述思路和关键代码实现:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训