z1446773686
发表于 2018-3-8 16:12:09
math = 1
for i in range(0,5):
math *= 5
math += 1
print(math)
number = 10000
while(number > 0):
math = number
for i in range(0,4):
if math % 5 == 1:
math -= 1
math /= 5
if math % 5 == 1:
print(number)
number -= 1
运行结果如下:
>>>
3906
7031
3906
781
>>>
阿bang
发表于 2018-3-8 19:54:52
本帖最后由 阿bang 于 2018-3-8 19:59 编辑
Monkey_1 = 0
answers = 0
while True:
Monkey_1 += 1
if ((5 * Monkey_1 + 1) % 4) == 0 :
Monkey_2 = (5 * Monkey_1 + 1) / 4
else:
continue
if ((5 * Monkey_2 + 1) % 4) == 0 :
Monkey_3 = (5 * Monkey_2 + 1) / 4
else:
continue
if ((5 * Monkey_3 + 1) % 4) == 0 :
Monkey_4 = (5 * Monkey_3 + 1) / 4
else:
continue
if ((5 * Monkey_4 + 1) % 4) == 0 :
Monkey_5 = (5 * Monkey_4 + 1) / 4
else:
continue
Total = 5 * Monkey_5 + 1
printMonkey_1,Monkey_2,Monkey_3,Monkey_4,Monkey_5,Total
answers += 1
if answers == 10:
break
=====================
这题实际为求整数解,理论上有无数种解。上述为从小到大输出10种答案,每一行为一个解,从左到右为第一,二。。五只猴子拿走的数量,以及桃子的原始总数。
输出为:
255 319 399 499 624 3121
511 639 799 999 1249 6246
767 959 1199 1499 1874 9371
1023 1279 1599 1999 2499 12496
1279 1599 1999 2499 3124 15621
1535 1919 2399 2999 3749 18746
1791 2239 2799 3499 4374 21871
2047 2559 3199 3999 4999 24996
2303 2879 3599 4499 5624 28121
2559 3199 3999 4999 6249 31246
Agoni
发表于 2018-3-9 12:20:08
瞅瞅
Charonnnnn
发表于 2018-3-23 14:12:08
??
Even_138
发表于 2018-3-29 09:55:39
{:5_91:}
HiaGhost
发表于 2018-3-29 10:54:21
def test16():
n = 5
num = 6
while n > 1:
num = num*5 + 1
n -= 1
print(num)
test16()
checkily
发表于 2018-3-29 23:38:26
result = 1
for i in range(5):
result = 5*result+1
print('海滩上原来最少有%d个桃子' % result)
第五只猴子至少拿1个桃子,所以这时剩下:1*5+1=6
第四只猴子至少拿6个桃子,所以这时剩下:6*5+1=31
第三只猴子至少拿31个桃子,所以这时剩下:31*5+1=156
第二只猴子至少拿156个桃子,所以这时剩下:156*5+1=781
第一至只猴子少拿781个桃子,所以原来至少有:781*5+1=3906
z1446773686
发表于 2018-4-7 11:27:23
number = 10000
while(number > 0):
math = number
for i in range(0,4):
if math % 5 == 1:
math -= 1
math /= 5
if math % 5 == 1:
if math % 5 == 1:
print(number)
number -= 1
tsembrace
发表于 2018-4-9 21:22:20
'''
海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份
第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
'''
pn=0
while True:
pn=pn+4
print('Start try %d...'% pn)
sn=pn
for i in range(1,5):
#计算每次猴子拿之前的数量
sn=sn//4*5+1
if sn%4!=0:
break
if sn%4!=0:
continue
else:
#多计算一次,算出第一只猴子拿之前的数量
sn=sn//4*5+1
print(sn)
break
一水蓝天01
发表于 2018-4-20 10:41:46
a=1
while a:
temp = a
if(temp - 1) % 5 == 0 :#第一次分桃
b = (temp - 1) / 5
for i in range( 1,5 ):#后面四次分桃
if (b - 1) * 4 % 5 == 0:
b = (b - 1)*4 / 5
if b != 0:#第五次分桃不为0个
print(a)
a = -1 #得到一个结果,结束所有循环
a += 1
xxt
发表于 2018-4-20 16:21:23
正确答案是多少
天天学习$
发表于 2018-5-1 23:32:04
def peach():
peach_number = 1
while True:
count = 0
peach_number += 1
number = peach_number
for i in range(0,5):
if number % 5 == 1:
count += 1
else:
break
number = number - number // 5
if count == 5:
print(peach_number)
break
天天学习$
发表于 2018-5-1 23:38:06
新手·ing 发表于 2017-4-2 12:25
@lumber2388779 @ooxx7788 @冬雪雪冬 @jerryxjr1220
来吧!
第五只猴子分完还应该多一个吧
jrro452
发表于 2018-5-2 16:59:46
学习下大佬的方案。
jrro452
发表于 2018-5-2 17:26:11
小白啥都不懂正面刚~~
n=0
i =5
while n !=1:
s=i
for x in range(4):
if s%5==1:
s-=int((s-1)/5)+1
else:
break
if s%5==1:
n+=1
else:
i+=1
print('原来最少的桃子数为:',i)
today0427
发表于 2018-5-3 21:33:48
来学习
BISHIQIUQIUI
发表于 2018-5-10 16:50:31
# 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
# 第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份.
# 第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
x=1
count=5
for n in range(5):
print("第 %d 只猴子拿走了 %d 个桃子"%(count,x))
x= 5*x + 1
count-=1
print("最少共有%d个桃子"%x)
#和之前10天吃桃子的猴子是一样的算法
萧丹夜
发表于 2018-5-11 22:27:10
def fobi(n,k):
if n == 5 :
return 4 * k
else :
return (fobi(n+1,k) * 5 / 4 + 1)
def check(x):
global flag
for n in range(0,6) :
if fobi(n,k) % 1 == 0 : #fobi(n,k)为整型
flag = 0
else :
flag = 1
break
flag = 1
k = 1
while flag == 1 :
for n in range(0,6):
check(fobi(n,k))
if flag == 1 :
k += 1
else :
break
print('最少有:%d' %fobi(0,k))
se7en2182
发表于 2018-5-12 10:00:00
x = 4
while True:
y = x
for i in range(5):
y = y * 5 / 4 + 1
if (y -1) % 5 != 0:
break
else:
print('海滩上原来最少有%d个桃子'%int(y))
break
x += 4
aaaqqq2004
发表于 2018-6-8 11:15:55
不要怂,正面怼{:5_98:}
#假设有x个桃子
#第一次拿走 (x-1)*0.2剩下 (x-1)*0.8 设剩下为s
#第二次拿走 (s-1)*0.2剩下 (s-1)*0.8
#....
#最后一次拿走 1只 剩下4只
#最后最少桃子数量应该有6,而且桃子总数应该是能-1可以被5整除的一个数
#还有一个条件,至少要拿5次
for i in range(6,10000,5):
s=(i-1)*0.8
flag=True
num=0#分了多少次
while s>3 and int(s)==s:
num=num+1
s=(s-1)*0.8
if num >=5:print (i,s)