第9届 蓝桥杯c++A组 猴子分香蕉
·
第二题:猴子分香蕉
题目描述
5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。
需要提交的是一个整数,不要填写任何多余的内容。
## 模拟,思路在代码注释中
# 猴子分香蕉
# 只有形如5x+1的值才可能为答案
ans = 6
while True:
n = ans
# 如果有一步不满足(n - i) % 5 == 0, ans直接加5
flag = True
for i in range(1, 5):
if (n - i) % 5 == 0:
n = (n - i) * 0.8
else:
flag = False
break
if flag:
# 0 % 5 = 0 分到第5只猴子时没香蕉了 不符合题意,需要特判一下
if n % 5 == 0 and n != 0:
print(ans)
break
ans += 5
答案:
更多推荐
所有评论(0)