华为OD机试——报数问题(C++、Java、Python、JavaScript 深度解析)
题目背景
在这个报数问题中,考察的是模拟圆圈中的人依次报数,并根据特定规则逐个淘汰的人数问题。报数从 1 开始,凡是报到 3 的人将被淘汰,剩下的人继续报数,直到最后只剩下一个人。这种问题也被称为经典的 约瑟夫环问题。
题目描述
有 n
个人围成一圈,编号从 1
到 n
,每个人按顺序依次报数,报数从 1
开始,凡是报到 3
的人将退出圈子。问最后留下的人的原始编号是几?
输入描述:
- 输入为一个整数
n
,表示参与人数,n < 1000
。
输出描述:
示例:
示例 1