蓝桥等考Python组别十八级001
第一部分:选择题
1、Python L18 (15分)
运行下面程序,输入10,输出的结果是( )。
n = int(input())
if n % 2 == 0:
print(n // 2 * 10 + 5)
else:
print((n // 2 + 1) * 10)
- 55
- 50
- 45
- 40
正确答案:A
2、Python L18 (15分)
运行下面程序,输入5,输出的结果是( )。
n = int(input())
a = 1
for i in range(2, n + 1):
a = a + i
print(a)
- 12
- 15
- 18
- 21
正确答案:B
3、Python L18 (20分)
运行下面程序,输入9,输出的结果是( )。
n = int(input())
i = 0
while n > 1:
if n % 3 == 0:
n = n // 3
else:
n = n // 3 + 1
i += 1
print(i)
- 1
- 2
- 3
- 4
正确答案:B
第二部分:编程题
4、Python L18 买铅笔(50分)
题目名称:买铅笔
题目描述:
老师需要购买一些铅笔,作为礼品发给表现良好的小朋友们。
文具店有5种包装的铅笔,不同包装的铅笔数量、整包价格、库存数量如下表所示。一般来说,一种包装的铅笔数量越多,优惠越多。
铅笔整包售卖,不能拆开。老师要买n支铅笔,最少要花多少钱?
例如:
n=520,最优的选择是:
100支/包的,买5包;
10支/包的,买2包;
总费用448(元)。
输入:
一个整数n(1<=n<=1000),表示老师需要购买的铅笔数量。
输出:
一个整数,表示买n支铅笔最少要花的钱数。
输入样例:
520
输出样例:
448
参考程序1:
size = (100, 50, 10, 5, 1)
price = (86, 44, 9, 5, 1)
num = (5, 3, 2, 2, 1000)
n = int(input())
ans = 0
for i in range(5):
c = min(n // size[i], num[i])
if c != 0:
ans += price[i] * c
n -= size[i] * c
print(ans)
参考程序2:
size = (100, 50, 10, 5, 1)
price = (86, 44, 9, 5, 1)
num = (5, 3, 2, 2, 1000)
n = int(input())
ans = 0
for i in range(5):
t = min(n // size[i], num[i])
ans += t * price[i]
n -= t * size[i]
print(ans)