冬雪雪冬 发表于 2017-4-26 16:52:18

sunshine似我 发表于 2017-4-26 15:51
为什么是最少剩余4个

6个分成5份,扔掉1个,再拿走1个,剩4个。

sunshine似我 发表于 2017-4-26 16:54:21

冬雪雪冬 发表于 2017-4-26 16:52
6个分成5份,扔掉1个,再拿走1个,剩4个。

那就是第四只猴子剩了这么多,第五只还没有分

冬雪雪冬 发表于 2017-4-26 16:55:58

第四只猴子剩了6个,第五只剩了4个

solomonxian 发表于 2017-5-2 20:57:33

哪里都有这群猴子的身影啊
def cal():
    remain = 4# 最终剩下四份,最低是4,理论上桃子是整个的
    while True:
      least = remain
      for i in range(5):   # 分了五次
            least = least *5 /4 +1
            if least%1 != 0:# 不是整数就是数字不对
                break
            elif i ==4:
                return least
            else:
                pass
      remain += 4# 最少加4
打印一下发现还真不少,发现巨额桃子,估计这五只猴子乐疯了{:10_256:}
least = cal()   
for j in range(1,6):
    print("第 %d 只猴子拿之前有 %d 个桃子" %(j, least))
    least = (least - 1) *4 /5

print("最后剩下 %d 个桃子" %least)

第 1 只猴子拿之前有 3121 个桃子
第 2 只猴子拿之前有 2496 个桃子
第 3 只猴子拿之前有 1996 个桃子
第 4 只猴子拿之前有 1596 个桃子
第 5 只猴子拿之前有 1276 个桃子
最后剩下 1020 个桃子

wl1352 发表于 2017-6-6 10:19:44

学习下

花寺情僧 发表于 2017-6-6 20:05:14

多看答案

Bekkkkkahhh 发表于 2017-8-1 15:37:04


for i in range(1000):
    get=i
    count=0
    for each in range(5):
       beforegetnumber=get*5+1

       get=beforegetnumber/4
       count+=1
       if get-int(get)!=0:

         break
    if count==5 and beforegetnumber-int(beforegetnumber)==0:
       print('一开始最少有%d个桃子'% int(beforegetnumber))
       break

bozhen 发表于 2017-8-15 14:00:56

#假设第五只猴子分前只有6个,平均分我5份,多的1个扔掉,这样是计算最少的情况

x = 6
for i in range(4):# 分了4次
       x = 5 *(x + 1)
         
print(x)


输出结果:4530

看看各位大佬解答

张大象 发表于 2017-9-15 14:28:37

tmp = 4
while True:
    x = tmp
    for i in range(4):
      x = x/4*5 + 1
      if x % 4 != 0:
            break
    else:
      x = x/4*5 + 1
      if (x-1) % 5!= 0:
            pass
      else:
            print('一开始最少有%d个桃子'%int(x))
            break
      
    tmp += 4

gausser 发表于 2017-9-17 11:06:22

from __future__ import division

last = 4    #The quantity of Peaches is at least 4 after The 5th Monkey take
while True:
    tmp = last#Every time "last" start
    for i in range(5):
      tmp = tmp / 4 * 5 + 1   # Recursive Formula between the monkey take the quantity of peaches
      #print tmp
      if tmp% 4 != 0:   # The quantity of peaches left every time is a multiple of four
            break
    else:
      print "The total is: ", tmp# Print the final Quantity
      break

    last = last + 1   # one by one

aixuexi82 发表于 2017-9-28 15:36:11

def monkey(n):
    if n == 1:
      return 6
    else:
      return monkey(n-1)*5+1

peach = monkey(5)
print('至少有%d个桃子!' % peach)

朔夜 发表于 2017-10-17 16:52:56

def fun(temp,count,app):
    if count<=5:
       if(temp%5==1):
            app.append(temp)
            count=count+1
            fun(((temp-1)/5)*4,count,app)
if __name__=='__main__':
    i=0
    while True:
       print(i)
       count=1
       array=[]
       fun(i,count,array)
       i=i+1
       if len(array)==5:
         print(array)
         break

石小龙 发表于 2017-11-13 11:12:53

这题太难了,搞了2个小时,没搞出来,我怀疑自己脑子坏了,算了不做了,已经蒙圈了,上面的答案我看了,很多人回答的也不对。

a5509 发表于 2017-11-14 11:14:36

看一下

纳兰小寒 发表于 2018-2-25 23:10:19

a = 6
for i in range(1,5):
    a = a * 5 + 1
print(a)

夜寐子游 发表于 2018-2-25 23:51:06

???

victor.xu 发表于 2018-2-26 14:44:22

看看

topscien 发表于 2018-3-1 15:20:09

我是来抄答案的!{:5_97:}

moc 发表于 2018-3-1 15:33:21

倒着推,第五只猴子走后,剩下的桃子数一定是4的倍数……
remainder = 0
num = 0.2
while num % 1 != 0:
    remainder += 4
    num = remainder
    for i in range(5, 0, -1):
      num = num / 4 * 5 + 1
print(int(num))

大头目 发表于 2018-3-8 12:18:12

def calc_n():
        n = 0
        while True :
                n = n+1
                print(n)
                sum_n = n * 5 + 1
                for i in range(0,4):
                        sum_n = sum_n * 5 + 1
                yield sum_n
               
generator_a = calc_n()
for i in range(1000):
        print(next(generator_a))
        input()
页: 1 2 [3] 4 5 6 7
查看完整版本: Python:每日一题 16(答题领鱼币)