贪 心 算 法

生 活 中 的 贪 心 算 法

找零钱问题

币值 数量
1
5
10
50
  • 用100元,买了53元的东西,应该找回多少钱?
  • 用最少的纸币来完成

贪心算法

在对问题求解时,在特定规则下,总是做出在

 

当前看来是最好的选择

取整

运算符 符号表示
/ 除法运算
% 取余运算
// 取整数运算
#运算案例
# 请尝试运行以下代码
print(5//2)
print(6//4)
print(3//2)

找 零 钱 问 题

目标:找47元 纸币:1、5、10、20、50

规则:使找的零钱的纸币张数最少

#定义要找的目标价值
target=47

#定义币值列表
money=[50,20,10,5,1]

#需要的数量列表
number=[0,0,0,0,0]

#循环,进行计算
for i in range(5):
	#计算需要多少张当前面值
	number[i]=target//money[i]

	#计算还剩下多少钱
	target=target%money[i]


#打印结果
for i in range(5):
	print("需要",money[i],"元的纸币",number[i],"张")

综 合 练 习

你有很多张88元、44元、22元、1元、1元的纸币,输入个要支付的钱数,请你输出最少要用多少张纸币才能完成支付,并输出此时每种纸币需要用多少张。

Made with Slides.com