1、小明有N元钱去药店买口罩,药店有6个品牌的口罩,A品牌2元/2个,B品牌2元/3个,C品牌3元/1个,D品牌1元/5个,E品牌5元/4个,F品牌2元/3个,由于限购,每个品牌的口罩只能购买一份,小明最多购买几个?
1<N<15,例如输入9,输出13
解:从数学题的角度来讲,要买到最多口罩,就从最便宜的开始买,直到没钱为止。
A:1元/个,B/F:0.66元/个,C:3元/个,D:0.25元/个,E:1.25/个
那么购买的顺序为DBFAEC
所以输入9时,可以购买5+3+3+2=13
import sys
def buy(money):
sum = 0
if money > 1 and money = 1:
sum += 5
money -= 1
if money >= 2:
sum += 3
money -= 2
if money >= 2:
sum += 3
money -= 2
if money >= 2:
sum += 2
money -= 2
if money >= 5:
sum += 4
money -= 5
if money >= 3:
sum += 1
money -=3
return sum
money = int(sys.stdin.readline())
#for line in sys.stdin:
# money = int(line)
print(buy(money))
当时在做输入输出的时候愣是搞了一会儿才明白他要求的代码规范,之前都是直接用input_,我只是个刚学python的小菜鸡。
后来查了一下,input()方法和stdin()实现的功能是基本一致的,input()可以直接在括号内填写文字~
2、第二题题目太长了,就简单的描述一下。
如图中的三角型,S1=1+2+3+4,S2=4+5+6+7,S3=7+8+9+1
要求输入9个数字,判断这个三角形是不是等边三角型,是输出yes,不是输出no。
例子:
输入:3,4,8,5,2,6,7,1,9
输出:yes
import sys
def panduan(list_shuru):
s1 = int(list_shuru[1]) + int(list_shuru[2]) + int(list_shuru[3]) + int(list_shuru[0])
s2 = int(list_shuru[4]) + int(list_shuru[5]) + int(list_shuru[3]) + int(list_shuru[6])
s3 = int(list_shuru[7]) + int(list_shuru[8]) + int(list_shuru[0]) + int(list_shuru[6])
if s1 == s2 == s3 :
return 'yes'
else:
return 'no'
for line in sys.stdin:
list_shuru = line.split(',') #输入数字,以逗号隔开
print(panduan(list_shuru))