题目:
考察内容:
if + for + math.ceil()向上取整
代码:
"""
题目分析:
输入:
int 1次最多执行的任务个数
int 数组长度
list 任务数组--表示任务个数
输出:
执行完所有任务最小时间
eg:
3
5
1 2 3 4 5
4
5
5 4 1 1 1
思路:
"""
import math
task_sum = int(input())
task_length = int(input())
task_list = list(map(int, input().split()))
time_total = 0
temp = 0
# 遍历任务数量
for task in task_list:
# 将上一个未运行的任务记录到本次任务执行
task_temp = task + temp
# 计算并发数量差值
difference = task_sum-task_temp
# 如果为负数,说明一次运行不完,需要记录剩余数量到下一个任务
if difference < 0:
temp = abs(difference)
else:
temp = 0
# 每循环一次,+1
time_total += 1
# 如果运行到最后一个任务,且还有剩余任务,则用时为剩余任务/并发数量,向上取整
if task == task_list[-1] and temp:
time_temp = int(math.ceil(temp/task_sum))
time_total += time_temp
print(time_total)