hjx123hjx 发表于 2019-3-3 19:22:00

本帖最后由 hjx123hjx 于 2019-3-3 20:08 编辑

def totalpeach(n, x):
   
    while True:
      peach = x
      for i in range(n):
            peach = 1 + peach * 5 / 4
            if (peach - 1) % 5 != 0:
                break
      else:
            break
      x += 4
    return peach
   
print(totalpeach(5,4))

北城以北灬 发表于 2019-3-4 17:00:34

for num in range(100000):
    ori = num
    for i in range(5):
      if (num - 1) / 5 % 1 == 0:
            num = (num - 1) * 4 / 5
      else:
            break

      if i == 4:
            print(ori)

            

最少是3121个,不是这个答案的,都是题目理解有问题

lwy520 发表于 2019-3-20 15:58:12

def fentao(n):
    if n % 5 == 1:
      n=(n-1)//5*4
      return n
    else:
      return -2
ini=6
n=ini
k=0
while(True):
   
    num=fentao(n)
    if num != -2:
      k+=1
      n=num
    else:
      ini+=1
      n=ini
      k=0

    if k==5:
      break

print(ini)

捞鬼 发表于 2019-3-20 21:52:15

最后只有一只猴子时,算上还要扔的那一个桃子,不应该至少有2个吗?所以说当只有两只猴子时至少有5个桃子啊

Becky1101 发表于 2019-3-20 22:21:46

设第五只猴子拿走了x个桃子,那么最初的桃子应该是:
(((((5x+1)*5+1)*5+1)*5+1)*5+1)=3125x+781
x应该是大于等于1的整数(如果最后一只猴子不是空手走的话)
那么 x取1时,最少有3906个桃子(这帮猴子可真聪明!).
如果最后一只猴子手里只有一个桃子还给扔了的话(太傻了!)那就是781个桃子。

hj5818 发表于 2019-3-20 23:28:59

def fix(n):
    if n==1:
      return 1
    else:
      return fix(n-1)*5+1
print ('原来最少有%d个桃子'% fix(5))

panheng 发表于 2019-8-13 15:23:21

def answer1():
    left = 0                                                #假设最后一天扔掉后剩余0个桃
    count = 5                                                 #计数器初始化
    a = left                                                # 分配后(after)桃子数
    b = a * 1.25 + 1                                          # 分配前(before)桃子数
    while count > 0:                                          #控制分配次数
      print("第%d天分前桃子数为%d个,分后桃子数为%d个" % (count, b, a))
      if b % 1 == 0:                                        #如果某天桃子数为整数则计算前一天桃子数
            a = b
            b = b * 1.25 + 1
            count -= 1                                        #计数器减1
      else:
            left += 1                                       #当出现非整数时剩余桃子递推加1,初始化计数器
            a = left
            b = a * 1.25 + 1
            count = 5
            print("-------------------------------------------")         #分割线
    print("初始桃子数为%d个,最后剩余桃子为%d个" % (a, left))

if __name__ == '__main__':
    answer1()

克里斯保罗 发表于 2019-8-29 11:53:16

哈哈def f(n):
          if n == 1:
                  return 6
          else:
                  return f(n-1)*5 +1
if __name__ =='__main__':
       result = f(5)
       print('一共有%d个桃子'%result)
         
         

JadeGu 发表于 2019-9-3 22:07:25

1020 0 1276.0
1020 1 1596.0
1020 2 1996.0
1020 3 2496.0
1020 4 3121.0
最小是3121.。。

lucky邪神 发表于 2019-9-4 04:51:26

num=1
flag=True
n=int(input('输入猴子数量:'))
while flag:
    t=n
    sum=1+n*num #最后那只猴子所需分的数量
   # print('num是:%d'%num)
    while t>1:
      sum=int(n*sum/(n-1)+1)
      t-=1
       # print('第{}只猴时的sum是{}'.format(t,sum))
      if (sum-1)%n != 0:
            num +=1
         # print('进来:{}'.format(sum))
            break
    if (sum-1)%n==0:
      flag=False
print('原有桃子%d'%sum)

阿瑞 发表于 2019-9-11 19:29:13

j = 4
for i in range(1,6):
    x = j
    x = x*1.25 + 1
    if type(x) is float:
      j += 4
print(x)

Jung 发表于 2019-11-26 16:57:51

i = 0
L = []
while True:
    th5 = i   #i为第五只猴子拿走的数量。理论上有无数种解。只要循环为无穷。这里我只取能满足要求的最小数
    L.append(5*i+1)
    for k in range(4):
      T = (5/4)*L+1
      if((T-1)%5==0):
            L.append(T)
      else:
            L=[]
            break
    if L!=[]:
      print("Totall peach are %d" % (L))
      break
    else:
      i +=1

天下一统2014 发表于 2019-12-1 21:36:28

b =[]
for i in range(10000):
    a = i
    for each in range(5):
      if (i-1)%5 ==0:
            i = (i-1)/5*4
      else:
            a = 0
    if a !=0 :
      b.append(a)
print(b)            

海上飞鱼 发表于 2020-3-1 10:42:36

origin = 6
while True:
    rest = origin
    for i in range(5):
      if (rest-1) % 5:
            break
      rest = (rest-1)/5*4
    else:
      print(f'海滩上原来最少有{origin}个桃子.\n海滩上剩余{int(rest)}个桃子.')
      break
    origin += 5

杜若左 发表于 2020-3-11 08:42:50

看看

mcx88 发表于 2020-3-15 10:11:09

#第5天分之前至少要有6个,才能保证平均分成5堆,每堆有一个,且剩余多一个扔掉。
a=1
for j in range(1,6):
    a=a*5+1
    print('第%d天分之前剩余%-4d个桃子'%(6-j,a))

holiday_python 发表于 2020-3-27 20:53:52

君子好逑 发表于 2020-4-13 00:31:30

答案

san1412 发表于 2020-5-16 09:06:33

for n1 in range(1,1000):
    n2 = (5*n1 + 1) / 4
    if n2 % 1 == 0:
      n3 = (5*n2 + 1) / 4
      if n3 % 1 == 0:
            n4 = (5*n3 + 1) / 4
            if n4 % 1 == 0:
                n5 = (5*n4 + 1) / 4
                if n5 % 1 == 0:
                  print('海滩上原来最少有%d个桃子'%(5*n5 + 1))
                  break

nononoyes 发表于 2020-6-2 10:11:12

sum = 1
count = 5
for i in range(1,6):
    sum = (sum*5)+1
    print("第%d只猴子桃子总数为:%d"%(count,sum))
    count = count - 1


第5只猴子桃子总数为:6
第4只猴子桃子总数为:31
第3只猴子桃子总数为:156
第2只猴子桃子总数为:781
第1只猴子桃子总数为:3906
页: 1 2 3 4 5 [6] 7
查看完整版本: Python:每日一题 16(答题领鱼币)