Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 给定4个值q、w、e和问题,如何解决给定问题_Python_Algorithm - Fatal编程技术网

Python 给定4个值q、w、e和问题,如何解决给定问题

Python 给定4个值q、w、e和问题,如何解决给定问题,python,algorithm,Python,Algorithm,我正在研究一个问题,在这个问题中,给你三个值q,w,eq是一个小时内可以解决多少问题,w是一个人可以连续解决多少个小时的问题,e是“工作”会话之间需要休息多少小时 我得到了q、w、e以及需要解决的问题的数量 我必须输出学生完成问题所需的小时数(四舍五入到最接近的整数) 这是我尝试过的代码,但它不适用于所有可能的q、w、e值 problems = int(input()) q = int(input()) w = int(input()) e = int(input()) problems_sol

我正在研究一个问题,在这个问题中,给你三个值
q,w,e
q
是一个小时内可以解决多少问题,
w
是一个人可以连续解决多少个小时的问题,
e
是“工作”会话之间需要休息多少小时

我得到了
q、w、e以及需要解决的问题的数量

我必须输出学生完成问题所需的小时数(四舍五入到最接近的整数)

这是我尝试过的代码,但它不适用于所有可能的
q、w、e

problems = int(input())
q = int(input())
w = int(input())
e = int(input())
problems_solved = 0
hours = 0
while problems_solved < problems:
    problems_solved+=q
    hours+=1
    if hours % w == 0 and problems_solved < problems:
        hours+=e
print(hours)
problems=int(输入())
q=int(输入())
w=int(输入())
e=int(输入()
已解决的问题=0
小时=0
当问题解决时<问题:
问题_已解决+=q
小时数+=1
如果小时数%w==0且问题\u已解决<问题:
小时+=e
打印(小时)

条件
小时数%w
导致了此问题。如问题所述,其余部分必须在
w
小时或
w
工作时间后进行。但是,您同时将休息时间和工作时间添加到单个变量(
hours
)中,这在逻辑上是不正确的

解决方案:保留一个单独的变量来计算休息时间,如下所示:

 problems = int(input())
 q = int(input())
 w = int(input())
 e = int(input())
 problems_solved = 0
 work_hours = 0
 rest_hours = 0
 while problems_solved < problems:
     problems_solved+=q
     work_hours+=1
     if work_hours % w == 0 and problems_solved < problems:
          rest_hours+=e
 print(work_hours + rest_hours)
problems=int(输入())
q=int(输入())
w=int(输入())
e=int(输入()
已解决的问题=0
工作时间=0
休息时间=0
当问题解决时<问题:
问题_已解决+=q
工时+=1
如果工时%w==0且问题已解决<问题:
休息时间+=e
打印(工作时间+休息时间)

代码中的错误是
hours+=e
将中断
hours%w
计算。例如,如果
w
为3,而
e
为2,则学生将工作三小时,然后休息两小时。此时
hours
为5。因此,学生将工作一个小时,然后再次休息。似乎这可以在
O(1)
中完成,而不是在
O(问题/q)
有趣的@user3386109中完成。你能详细说明一下,如果可能的话,帮我修复我的解决方案吗?你能帮我修复我的解决方案@user3365922先看看答案吗