【简单数学小问题8】买铅笔
本帖最后由 无理想的闲鱼 于 2022-11-14 10:36 编辑题目:
P老师需要去商店买n支铅笔作为小朋友们参加编程比赛的礼物。她发现商店一共有 3 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P老师决定只买同种包装的铅笔。商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过 n 支铅笔才够给小朋 友们发礼物现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n 支铅笔最少需要花费多少钱。
输入描述:
第一行包含一个正整数n,表示需要的铅笔数量。 接下来三行,每行用 2 个正整数描述一种包装的铅笔: 其中第 1 个整数表示这种 包装内铅笔的数量,第 2个整数表示这种包装的价格。 保证所有的 7个数都是不超过 10000 的正整数
输出描述:
1 个整数,表示P老师最少需要花费的钱。
【输入示例】
57
2 2
50 30
30 27
【输出示例】
54
回复即可查看答案
**** Hidden Message *****
我的答案代码很不简洁,欢迎大家写出自己的代码 这不是NOIP的真题嘛~ pencilnum = int(input()) #需要的铅笔数量
a = input() #第1个整数表示这种包装内铅笔的数量,第2个整数表示这种包装的价格
b = input() #第1个整数表示这种包装内铅笔的数量,第2个整数表示这种包装的价格
c = input() #第1个整数表示这种包装内铅笔的数量,第2个整数表示这种包装的价格
def mycost(x):
x_price = int(x.split(" "))
x_num = int(x.split(" "))
if pencilnum % x_num == 0:
nums = pencilnum // x_num
else:
nums = pencilnum // x_num + 1
cost = nums*x_price
return cost
mincost = min(mycost(a),mycost(b),mycost(c))
print(f"{mincost}") 打卡学习 打卡学习
打卡学习 打卡学习~~ 打卡学习 from math import ceil
nump = int(input()) #需要的铅笔数量
a = input()
b = input()
c = input()
def cost(x):
x_price = int(x.split(" "))
x_num = int(x.split(" "))
nums = ceil(nump/x_num)#ceil(x)返回 x 参数向上取整后的结果
cost = nums*x_price
return cost
print(f"{min(cost(a),cost(b),cost(c))}")
n =int(input("需要多少铅笔") )
x1=int(input("第一种铅笔的价钱"))
x2=int(input("第一种铅笔的个数"))
y1=int(input("第二种铅笔的价钱"))
y2=int(input("第二种铅笔的个数"))
z1=int(input("第三种铅笔的价钱"))
z2=int(input("第三种铅笔的个数"))
if n>x2:
if n%x2==0:
o1=(((n//x2))*x1)
else:
o1=(((n//x2)+1)*x1)
else:
o1=x1
if n>y2:
if n%y2==0:
o2=(((n//y2))*y1)
else:
o2=(((n//y2)+1)*y1)
else:
o2=y1
if n>z2:
if n%z2==0:
o3=(((n//z2))*z1)
else:
o3=(((n//z2)+1)*z1)
else:
o3=z1
if o1>o2 and o3>o2:
print(f"选择第二种,花费了{o2}块")
elif o1>o3 and o2>o3:
print(f"选择第一种,花费了{o3}块")
elif o2>o1 and o3>o1:
print(f"选择第一种,花费了{o1}块")
有点长{:10_269:} 但这个是我第一个想到的方法了
页:
[1]