-
编程练习-找零钱
老村长在村口支了一个西瓜摊卖西瓜,规定每人只能买一个瓜,一个瓜5元。
村民们手里有5元,10元,20元币值的钱。
拿5元买瓜,不用找零。
拿10元买瓜,需要找零5元。
拿20元买瓜,需要找零15元。
请写出一个函数,检查老村长能否对排队买瓜的所有人找零钱,如果能,返回true,否则,返回false。
结题思路:
收到5元,不用找零。
收到10元,就要看有没有5元找零。
收到20元,找零15元。就要看有没有一张10元,一张5元或三张5元。
所以需要知道每次找零时5元和10元的剩余数量。
go实现:
package main import "fmt" func coinChange(coin_list []int) bool { var five, ten = 0, 0 fmt.Println(coin_list) for _, v := range coin_list { if v == 5 { five++ } if v == 10 { if five > 0 { five-- ten++ } else { return false } } if v == 20 { if five > 0 && ten > 0 { five-- ten-- } else if five >= 3 { five = five - 3 } else { return false } } } return true } func main() { var coin_list = []int{5, 10, 5, 20} fmt.Println(coinChange(coin_list)) }
python实现:
def coinChange(coin_list): five = ten = 0 for coin in coin_list: if coin == 5: five += 1 if coin == 10: if five: five -= 1 ten += 1 else: return False if coin == 20: if five and ten: five -= 1 ten += 1 elif five >= 3: five -= 3 else: return False return True if __name__ == '__main__': coin_list = [5, 5, 10 ,10, 20] print(coinChange(coin_list))
c++实现:
#include<iostream> #include<vector> using namespace std; bool coinChange(vector<int>& bills) { int five, ten = 0; for(auto& bill: bills) { if(bill == 5) { five++; } if(bill == 10) { if(five > 0) { five++; ten--; } else { return false; } } if(bill == 20) { if (five > 0 && ten > 0) { five--; ten--; } else if (five >= 3) { five = five - 3; } else { return false; } } } return true; } int main(){ int coinList[] = {5, 5, 10, 20}; vector<int> bills(coinList, coinList+4); bool res = coinChange(bills); cout << "res:" << bool(res) << endl; return 0; }
出处:https://www.cnblogs.com/zhengze/p/15089448.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式