主题:约瑟夫问题 qb解决办法!!!! 数组实现
INPUT n \\参与的人数
INPUT "shudaodeshu", k \\循环数
DIM a(n)
FOR i = 1 TO n
a(i) = i
NEXT i
s = n
count = 0 \\ 用与计数 每到k时再置0
WHILE s > 1 \\人数只剩下一个
FOR i = 1 TO n
IF a(i) <> 0 THEN
count = count + 1
IF count = k THEN
PRINT a(i); \\被踢出去的哪个家伙
a(i) = 0 \\该位置为空,
count = 0 \\计数器清零
s = s - 1 \\ 人数减一
END IF
END IF
NEXT i
PRINT
WEND
FOR i = 1 TO n \\输出剩下的哪个家伙
IF a(i) <> 0 THEN
PRINT "then last is :"a(i)
END IF
NEXT i
END
INPUT "shudaodeshu", k \\循环数
DIM a(n)
FOR i = 1 TO n
a(i) = i
NEXT i
s = n
count = 0 \\ 用与计数 每到k时再置0
WHILE s > 1 \\人数只剩下一个
FOR i = 1 TO n
IF a(i) <> 0 THEN
count = count + 1
IF count = k THEN
PRINT a(i); \\被踢出去的哪个家伙
a(i) = 0 \\该位置为空,
count = 0 \\计数器清零
s = s - 1 \\ 人数减一
END IF
END IF
NEXT i
WEND
FOR i = 1 TO n \\输出剩下的哪个家伙
IF a(i) <> 0 THEN
PRINT "then last is :"a(i)
END IF
NEXT i
END