Python实验 求大佬救救孩子
假设有一条长的路,路上每隔trap_step米就有一个大坑,青蛙和狐狸同时从起点开始且以相同的频率沿着路向前跳跃,青蛙每次能跳frog_step米,狐狸每次能跳fox_step米。
请模拟上面的路况和跳跃过程,如果青蛙先掉进坑里就输出字符串’frog’,如果狐狸先掉进坑里就返回字符串’fox’,如果同时掉进坑里就返回字符串’both’。
这难道是求最小公倍数,嗯,求两个最小公倍数,然后对比
def LowestCommonMultiple(a, b):
if a < b: # a小于b时交换
temp = a
a = b
b = temp
greatestCommonDivisor = 0 # 最大公约数
product = a * b # 乘积
while a % b != 0: # 欧几里得算法求最大公约数
a = a % b
b = b % a
if b: # 若b不为0
greatestCommonDivisor = b
else:
greatestCommonDivisor = a
break
lowestCommonMultiple = product / greatestCommonDivisor # 最小公倍数=两数乘积/最大公约数
return lowestCommonMultiple
frog_step=2
fox_step=4
trap_setp=5
frog=LowestCommonMultiple(frog_step,trap_setp)#最小公倍数既是它落入坑中最远能跳的距离
fox=LowestCommonMultiple(fox_step,trap_setp)
if fox>frog:
print('frog')
elif fox<frog:
print('fox')
else:
print('both')
刚刚看成c++了,然后改了一下,我感觉应该没什么问题