回 帖 发 新 帖 刷新版面

主题:请MOZ来解决“猴子选大王”这道题

有n个猴子选大王,先从头到尾1至3报数,报到3的猴子推出,报至尾后,再从尾到头1至3报数,报到3的猴子退出……依次类推,当剩下两只猴子时,报1的为大王,问:若想当大王,应站在什么位置。
输入: 整数n(猴子的只数,n<=60000)
输出: 想当大王应站的位置
样例输入:
10
样例输出:
8

回复列表 (共19个回复)

11 楼

CLS
INPUT n
DIM a(n)
DO
  x = x + 1
  IF x MOD 2 <> 0 THEN a = 1: b = n: c = 1 ELSE a = n: b = 1: c = -1
  k = 0
  FOR i = a TO b STEP c
    IF a(i) = 1 THEN 10
    IF y = n - 2 THEN PRINT i: END
    k = k + 1
    IF k MOD 3 = 0 THEN a(i) = 1: y = y + 1
10 NEXT i
LOOP
END

12 楼

cls
INPUT n
DIM a(n)
DO
  x = x + 1
  IF x MOD 2 <> 0 THEN a = 1: b = n: c = 1 ELSE a = n: b = 1: c = -1
  k = 0
  FOR i = a TO b STEP c
    IF a(i) = 1 THEN 10
    IF y = n - 2 THEN PRINT i: END
    k = k + 1
    IF k MOD 3 = 0 THEN a(i) = 1: y = y + 1
10 NEXT i
LOOP
END


13 楼

deflng a-z是什么意思?

14 楼

CLS
INPUT N: DIM N(N)
DO
X = X + 1
IF X MOD 2 <> 0 THEN A = 1: B = N: C = 1 ELSE A = N: B = 1: C = -1
K = 0
FOR I = A TO B STEP C
IF N(I) <> 0 THEN 10
K = K + 1
IF S = N - 2 THEN PRINT I: N(I) = 1: EXIT DO
IF K MOD 3 = 0 THEN S = S + 1: N(I) = 1: PRINT I,
10 NEXT I
LOOP
FOR I = 1 TO N: IF N(I) = 0 THEN PRINT I: END
NEXT I
END

15 楼

CLS
INPUT N: DIM N(N)
DO
X = X + 1
IF X MOD 2 <> 0 THEN A = 1: B = N: C = 1 ELSE A = N: B = 1: C = -1
K = 0
FOR I = A TO B STEP C
IF N(I) <> 0 THEN 10
K = K + 1
IF S = N - 2 THEN PRINT I: N(I) = 1: EXIT DO
IF K MOD 3 = 0 THEN S = S + 1: N(I) = 1: PRINT I,
10 NEXT I
LOOP
FOR I = 1 TO N: IF N(I) = 0 THEN PRINT I: END
NEXT I
END

16 楼

据楼主题意可得如下结论:
                         若为偶数,则站位2是王
                             否则,站位倒数2是王

17 楼

CLS
INPUT N
DIM A(N)
FOR I = 1 TO N
 A(I)=1
NEXT I
I=0:J=1:S=N
DO
 P=0
 DO 
  I=I+C
  IF I<J THEN C=1
  IF I>N THEN C=-1
  P=P+A(I)
 LOOP UNTIL P=3
 A(I)=0
 S=S-1
 IF S=0 THEN PRINT I:EXIT DO
 WHILE A(N)=0:N=N-1:WEND
 WHILE A(J)=0:J=J+1:WEND
LOOP
END

18 楼

回家啊哈是的萨芬,大家都在

19 楼

CLS
INPUT N: DIM A(N)
DO: W = W + 1:K=0
IF W MOD 2 = 1 THEN A = 1: B = N: C = 1 ELSE A = N: B = 1: C = -1
FOR I = A TO B STEP C
IF A(I) = 1 THEN 10
IF S = N - 2 THEN PRINT I: END
K = K + 1: IF K MOD 3 = 0 THEN S = S + 1: A(I) = 1
10 NEXT I
LOOP
END
麻烦楼主也赏点分!!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册