Python简单题实战——爬动的蠕虫

99 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第31天,点击查看活动详情

一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?

这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。

输入格式:

输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。

输出格式:

在一行中输出蠕虫爬出井的时间,以分钟为单位。

输入样例:

12 3 1

输出样例:

11

代码长度限制   16 KB

时间限制     400 ms

内存限制     64 MB

map(int, input().split())介绍:

当input()接收多个数据时,要使用split()来接收用户的输入信息

但是如果用户是输入一个值然后再按一个空格的话可以不用使用这个,直接使用input每行接收即可~

题目思路:

  • 1.循环,需要有一个计数器来记录现在的位置
  • 2.还需要一个时间的计数器,用来记录过了多少时间
  • 3.输出map与input的联合使用
  • 4.需要住的是,我们只需要在加上U的时候判断是否满足大于等于N,因为只有这个是增加的!
  • 5.输出time的累加结果

代码如下:

# 用map(int, input().split())接收多个数据
n, u, d = map(int, input().split())
# 这是路程计数器
sum = 0
# 这是时间的计数器
time = 0
# 循环判断结果
while sum < n:
    sum += u
    time += 1
    if sum >= n:
        break
    sum -= d
    time += 1
# 最后输出time计数器的值
print(time)

PS

成功解题=一定的技巧+理清题意~