monkey = 4
def show(n):
for i in range(1, monkey + 1):
t = (n - 1) / monkey
print('%d. 桃子有%d个, 第%i只猴吃1个, 拿走%s个。' % (i, n, i, int(t)))
n = (monkey - 1) * t
def fun():
k = 1
while True:
t = k
for i in range(monkey - 1):
t = monkey * t + 1
if t % (monkey - 1): break
t /= (monkey - 1)
else:
print('如果猴子%d只:' % monkey)
print('桃子总数要%d个:' % (monkey * t + 1))
show(monkey * t + 1)
break
k += 1
fun()
Q&A
- t = monkey * t + 1 代表第n只猴子在吃拿前桃子的总数
- t % (monkey - 1)代表第n-1只猴子吃拿后,剩余的桃子数,判断 当前t 是否满足条件t !=0–>t不满足条件,则跳出循环,尝试下一个k
- t /= (monkey - 1) :t满足条件,往下查看是否满足序号2 条件
- print(‘桃子总数要%d个:’ % (monkey * t + 1)) 能否把变量替换成t?
- fun() 函数实现什么功能?
答:不断测试t是否可以整除monkey-1,然后得出最小的t
疑问?? 要是t 一直都不满足条件咋整