这是奔跑的键盘侠的第199篇文章
作者|我是奔跑的键盘侠
来源|奔跑的键盘侠(ID:runningkeyboardhero)
转载请联系授权
三年前,按键精灵板块停更了,读个研还是非常不易的,过程艰辛、结果辛酸。从今天开始,按键精灵相关内容,将开始新一轮的耕耘
与以往不同的是,我们邀请到了chatgpt专家来写代码,毫无疑问,顺应潮流才能与时俱进
废话不多说,直接上题目和代码。
100个人手拉手围成一圈,逢三退一(1到3循环数数,被数到3的人退出),求最后一个被剩下人的编号.请写出代码)
代码语言:javascript复制// 定义常量
const peopleNum = 100 // 人数
const countNum = 3 // 数到的数字
const exitNum = 1 // 退出的数字
// 初始化参与游戏的人员数组
dim people[peopleNum]
for i = 0 to peopleNum-1 step 1
people[i] = i 1
next
// 开始游戏
dim currIndex = -1 // 当前人员的索引(初始值为-1,方便计算)
dim exitCount = 0 // 已退出游戏的人数
while exitCount < peopleNum - 1 do
dim count = 0 // 统计数到的数字
while true do
currIndex = (currIndex 1) mod peopleNum // 循环计算当前人员的索引
if people[currIndex] > 0 then
count = count 1
end if
if count = countNum then
exitCount = exitCount 1
people[currIndex] = -exitCount // 将退出游戏的人标记为负数,方便后续判断
print "第" & exitCount & "个退出游戏的人的编号为:" & people[currIndex]
Exit while
end if
end while
wend
// 输出最后一个剩下的人
for i = 0 to peopleNum-1 step 1
if people[i] > 0 then
print "最后一个剩下的人的编号为:" & people[i]
Exit for
end if
next
补充说明:
- 首先定义了题目中所给定的常量,分别代表人数、数到的数字和退出的数字。
- 初始化参与游戏的人员数组,以便于后续对游戏进行操作。使用 for 循环遍历人员数组,将数组中每个元素赋值为其索引加 1。
- 开始游戏,使用 while 循环来模拟游戏的过程。
- 定义 currIndex 变量表示当前正在数数的人的索引,初始值为 -1。
- 定义 exitCount 变量表示已经退出游戏的人数,初始值为 0。
- 使用 while 循环来循环数数。当当前数到的数字等于 countNum 时,将当前正在数数的人标记为退出游戏,并将其编号输出。退出循环后,将 exitCount 加 1。
- 当 exitCount 的值达到 peopleNum - 1 时,说明只剩下最后一个人没有退出游戏了,跳出 while 循环。
- 输出最后一个剩下的人的编号,遍历人员数组,找到剩下的最后一个人即可。
-END-
© Copyright
奔跑的键盘侠原创作品 | 尽情分享朋友圈 | 转载请联系授权