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