鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 16(答题领鱼币)

  [复制链接]
发表于 2017-4-26 16:52:18 | 显示全部楼层
sunshine似我 发表于 2017-4-26 15:51
为什么是最少剩余4个

6个分成5份,扔掉1个,再拿走1个,剩4个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-26 16:54:21 | 显示全部楼层
冬雪雪冬 发表于 2017-4-26 16:52
6个分成5份,扔掉1个,再拿走1个,剩4个。

那就是第四只猴子剩了这么多,第五只还没有分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-26 16:55:58 | 显示全部楼层
第四只猴子剩了6个,第五只剩了4个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-2 20:57:33 | 显示全部楼层
哪里都有这群猴子的身影啊
  1. def cal():
  2.     remain = 4  # 最终剩下四份,最低是4,理论上桃子是整个的
  3.     while True:
  4.         least = remain
  5.         for i in range(5):   # 分了五次
  6.             least = least *5 /4 +1
  7.             if least%1 != 0:  # 不是整数就是数字不对
  8.                 break
  9.             elif i ==4:
  10.                 return least
  11.             else:
  12.                 pass
  13.         remain += 4  # 最少加4
复制代码

打印一下发现还真不少,发现巨额桃子,估计这五只猴子乐疯了
  1. least = cal()   
  2. for j in range(1,6):
  3.     print("第 %d 只猴子拿之前有 %d 个桃子" %(j, least))
  4.     least = (least - 1) *4 /5

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

  6. 第 1 只猴子拿之前有 3121 个桃子
  7. 第 2 只猴子拿之前有 2496 个桃子
  8. 第 3 只猴子拿之前有 1996 个桃子
  9. 第 4 只猴子拿之前有 1596 个桃子
  10. 第 5 只猴子拿之前有 1276 个桃子
  11. 最后剩下 1020 个桃子
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 2

使用道具 举报

发表于 2017-6-6 10:19:44 | 显示全部楼层
学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-6 20:05:14 From FishC Mobile | 显示全部楼层
多看答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-1 15:37:04 | 显示全部楼层

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

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

  9.            break
  10.     if count==5 and beforegetnumber-int(beforegetnumber)==0:
  11.        print('一开始最少有%d个桃子'% int(beforegetnumber))
  12.        break
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-15 14:00:56 | 显示全部楼层
#假设第五只猴子分前只有6个,平均分我5份,多的1个扔掉,这样是计算最少的情况

  1. x = 6
  2. for i in range(4):  # 分了4次
  3.        x = 5 *(x + 1)
  4.          
  5. print(x)
复制代码


输出结果:4530

看看各位大佬解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-17 11:06:22 | 显示全部楼层
  1. from __future__ import division  

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

  13.     last = last + 1   # one by one
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-28 15:36:11 | 显示全部楼层
  1. def monkey(n):
  2.     if n == 1:
  3.         return 6
  4.     else:
  5.         return monkey(n-1)*5+1

  6. peach = monkey(5)
  7. print('至少有%d个桃子!' % peach)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-13 11:12:53 | 显示全部楼层
这题太难了,搞了2个小时,没搞出来,我怀疑自己脑子坏了,算了不做了,已经蒙圈了,上面的答案我看了,很多人回答的也不对。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-14 11:14:36 | 显示全部楼层
看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-25 23:10:19 | 显示全部楼层
  1. a = 6
  2. for i in range(1,5):
  3.     a = a * 5 + 1
  4. print(a)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-25 23:51:06 From FishC Mobile | 显示全部楼层
???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-26 14:44:22 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-1 15:20:09 | 显示全部楼层
我是来抄答案的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 17:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表