我在这里解决了一个关于学习 python 的资源的测试任务。它看起来像这样:一只蜗牛沿着一根垂直的杆子爬行h米高,白天上升一米,晚上下降b米。哪天蜗牛会爬到柱子的顶端?
程序接收自然数 h、a、b 作为输入。
程序应该输出一个自然数。保证 a>b
任务编写者的解决方案是:
h = int(input())
a = int(input())
b = int(input())
print((h - a - 1) // (a - b) + 2)
我设法在一个循环中解决它。我的解决方案不那么优雅而且更麻烦。我仍然不明白数字“-1”和“+2”在开发人员的解决方案中来自哪里。有人可以向我解释发生了什么以及这个解决方案是如何产生的吗?显然我不懂数学。
一天之内,一只蜗牛总共爬了
a-b
几米。在最后一天 - 爬行a
米,蜗牛到达顶部。那些。如果这是第n
th 天,那么(n-1)*(a-b) + a >= h
, 但是(n-2)*(a-b) + a < h
。我应该多写吗?
更新
我们画……第二个条件给出
或者,因为所有数字都是整数,
因此,使用整数除法,