自学Python:邮票组合
我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同邮资。
现在,邮局有4种不同面值的邮票,在每个信封上最多能贴5张邮票,面值可以相同也可以不同,但至少要贴3种不同面值的邮票。
那么问题来了,求出用这4种面值所能组成的邮资的最大值。
由于至少要贴3种不同的邮票,最多贴5张,我们可以按照面值最大的贴3张、面值第二大的贴1张、面值第三大的贴1张来求出最大的邮资。
公式为:最大值=最大面值×3+第二大面值×1+第三大面值×1
下面直接上代码:
########################
if __name__=="__main__":
a, b, c, d = map(int, input("请输入4种邮票的面值,以空格分割: \n").split())
youpiao = [0]*4 # 存放4种邮票的面值
youpiao[0] = a
youpiao[1] = b
youpiao[2] = c
youpiao[3] = d
print("你输入的4种邮票面值为:" )
print(youpiao)
# 对邮票面值排序,最大面值为youpiao[3],第二大面值为youpiao[2],第三大面值为youpiao[1]
youpiao.sort()
sum = youpiao[3]*3 + youpiao[2]*1 + youpiao[1]*1
print("组合后的最大邮资为:%d" %sum)
########################
执行结果如下:
请输入4种邮票的面值,以空格分割:
1 5 7 3
你输入的4种邮票面值为:
[1, 5, 7, 3]
组合后的最大邮资为:29
________________END______________