描述:
《九章算术》的“盈不足篇”里有一个很有意思的老鼠打洞问题。原文这么说的:今有垣厚十尺,两鼠对穿。大鼠日一尺,小鼠亦一尺。大鼠日自倍,小鼠日自半。问:何日相逢?各穿几何?
这道题的意思就是说,有一堵十尺厚的墙,两只老鼠从两边向中间打洞。大老鼠第一天打一尺,小老鼠也是一尺。大老鼠每天的打洞进度是前一天的一倍,小老鼠每天的进度是前一天的一半。问它们几天可以相逢,相逢时各打了多少。
(注:本题禁止使用幂运算)
输入格式:
输入1个整数,代表墙的厚度,单位为尺
输出格式:
第一行输出1个整数,表示相遇时所需的天数
第二行输出2个浮点数,分别为小鼠和大鼠打洞的距离,单位为尺,保留小数点后1位数字。
#老鼠打洞
width=int(input())
speed1=speed2=1
i=0
a=b=0
while True:
a=a+speed1
b=b+speed2
sum=a+b
i=i+1
speed1=speed1/2
speed2=speed2*2
if sum>width:
print(i)
s=width-(a-speed1*2+b-speed2/2)
a=a-speed1*2+s*speed1*2/(speed1*2+speed2/2)
b=b-speed2/2+s*speed2/2/(speed1*2+speed2/2)
print('{:.1f} {:.1f}'.format(a,b))
break
else:
continue
原文链接:https://blog.csdn.net/Otis_98/article/details/105482249