A25712. 编程实现:有N(2≤N≤80)堆玻璃球,且已知每堆玻璃球的数量。小明每次只能从其中一堆玻璃球中拿出1颗或者2颗。请你帮助小明计算出,最少需要拿多少次才能把N堆玻璃球全部拿完。例如:N = 3,3堆玻璃球的数量分别为6,5,3,最少需要拿8次,具体拿法如下:6颗的玻璃球最少需要拿3次,第一次拿2个,第二次拿2个,第三次拿2个;5颗的玻璃球最少需要拿3次,第一次拿2个,第二次拿2个,第三次拿1个;3…
填空题
较易
知识点
题目描述
编程实现:
有N(2≤N≤80)堆玻璃球,且已知每堆玻璃球的数量。小明每次只能从其中一堆玻璃球中拿出1颗或者2颗。
请你帮助小明计算出,最少需要拿多少次才能把N堆玻璃球全部拿完。
例如:
N = 3,3堆玻璃球的数量分别为6,5,3,最少需要拿8次,具体拿法如下:
6颗的玻璃球最少需要拿3次,第一次拿2个,第二次拿2个,第三次拿2个;
5颗的玻璃球最少需要拿3次,第一次拿2个,第二次拿2个,第三次拿1个;
3颗的玻璃球最少需要拿2次,第一次拿2个,第二次拿1个。
输入描述:
第一行输入一个正整数N(2≤N≤80),表示玻璃球总堆数
第二行输入N个正整数(1≤正整数≤50),分别表示每堆玻璃球的数量,正整数之间以一个英文逗号隔开
输出描述:
输出一个整数,表示拿完N堆玻璃球最少需要拿取的次数
样例输入:
3
6,5,3样例输出:
8参考答案
N = int(input())
h = input()
s = list(map(int,h.split(',')))
c = 0
for i in s:
if i % 2 == 0:
c += (i/2)
else:
c += ((i+1)/2)
print(int(c))答案解析
评分标准:
3分:能正确输出第一组数据;
3分:能正确输出第二组数据;
3分:能正确输出第三组数据;
3分:能正确输出第四组数据;
4分:能正确输出第五组数据;
4分:能正确输出第六组数据。
上一题
下一题