|
|
发表于 2021-10-1 03:01:01
|
显示全部楼层
本帖最后由 Myhui 于 2021-10-1 12:32 编辑 6 ~ h6 g( Q! X. \
. T0 `) R5 \/ V$ c2 m放假了,没有机床测试,用python测试了下,结果是3121吗
625等于5的5次方
U' N( |) m8 c3 B0 G; Gi=0
L; A# K3 ]. R% h& o9 Z0 }2 Y
+ t* M* p5 S1 ]8 A8 gb=0 L- e# I/ v# s' Y8 c* a
0 t* v7 I* N. S8 ]2 m% |& h4 iwhile b!=3:; y0 F9 b- ]4 r# p. S
a=i*5+1 #设最开始有这么多的苹果
- S* c1 o* k6 I1 _ c=a #赋值给需要传出的变量; z- O+ H1 q7 n6 Y+ h4 o
if a%5==1 : #如果能平均分5份苹果还剩下一个
7 b* k% [7 {+ f2 y9 y a=a-int(a/5)-1 #第一个人拿走一份再吃掉一个后剩余的苹果
& L. e- ~+ E% P& P! B* V6 y: x/ h5 C b=11 E2 t9 V! ^6 K6 D& Y: v- j# x
if a%5==1 : #如果第二个人能把剩下的苹果平均分5份苹果还剩下一个 z: k) [- V$ \# v7 z& {
a=a-int(a/5)-1 #以下依次类推
" B# O( E* M) m ~5 W b=2
- |& \+ ]2 c* S9 g* O# ] if a%5==1 :
) d" \" F* ]- p8 A4 T a=a-int(a/5)-1
; _8 F" l9 z% i+ m& A b=3
m" W# U7 ~, o8 u" V if a%5==1 :
2 T* [- p8 h1 O; u1 C& j a=a-int(a/5)-14 A. ^7 m* Z; i, [' Z( E- p
b=4
. t' J5 ^. C% U% a8 e if a%5==1 :: }3 w7 {& B/ W* [' ^
#a=a-int(a/5)-10 n( ]: C; j% {; Y- S4 Q0 O
b=5 #当第五个人可以正常分苹果时跳出循环+ ^% Z' i$ l/ [) b' ^
+ V# N2 G# B- }7 @7 B ~9 n print("第"+str(i+1)+"次循环 到第"+str(b)+"人可分配 当前循环的苹果数量"+str(c))7 E1 A, F0 C3 D6 l* a
i=i+1
: v. T. N# G% E. H" a: I' b- [* z' n
6 D9 F+ [; L: d+ w9 f) a, ^# fprint("最少需要"+str(c)+"个苹果")
( A3 u% S4 ?5 R
3 Q Z* O6 K: t6 I0 u" p1 ]/ Y- _5 }6 _' U
) H6 j5 V% v1 [论坛代码为什么放不到代码框里??
' P8 m# H4 S) p% j5 z" c; T, ^5 {* n
这么巧合吗?刚好是5的5次方减4
( f9 e7 x$ X5 g0 S Z8 ~- _. z3 {, [) ~, s) G
要减去的4是固定的,也就是5份的1,不是5个人的1
' W9 t0 ?" E2 k" e4 H在while b!=5 的位置分别设置4 3 2可以用计算器试一下
) U' `3 a. o1 v& X" A(5份)的(n人次方)减去4等于最小苹果数量???如何可以推导出来?
/ d) C4 S( U) T# d; i
2 W- s) o- Q1 ]5 `& m
/ C8 j; J8 O ^; ~" |* J$ K4 s) ?6 r/ {( I
|
-
|