有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
来源:互联网 发布:建筑图纸设计软件 编辑:程序博客网 时间:2024/05/21 09:13
需求:
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
代码:
package work;import java.util.ArrayList;public class Main{/** * 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 * * 要求:用集合解决问题。 * * @param args */public static void main(String[] args) {int n = 8;// n 个人ArrayList<String> list = new ArrayList<>();for (int i = 0; i < n; i++) {list.add("Person" + i);}//观察规律// 0 1 2 3 4 5 6 7// p0 p1 p2 p3 p4 p5 p6 p7 -->2 %list.size() = 2// p0 p1 p3 p4 p5 p6 p7 -->4%lits.seze() = 4// p0 p1 p3 p4 p6 p7 -->6 %list.size() = 0// p1 p3 p4 p6 p7 -->2 %list.size() = 2// p1 p3 p6 p7 -->4 %list.size() = 0// p3 p6 p7 -->2 %list.size() = 2// p3 p6 -->4 %list.size() = 0// p6 -->剩下 6//// 根据规律发现。每次下标+2 后 对集合长度取余后 刚好是要删除的位置。int tag = 0;while (list.size() > 1) {// 当最后只剩下一个后 出圈结束tag += 2;tag %= list.size();list.remove(tag);// list.remove(tag = (tag + 2) % list.size());//等价与上面3行代码}System.out.println("最后留下的位置:"+list.get(0));// 观察最后一个留下来的人。}}
阅读全文
0 0
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数)凡报到3的人退出圈子问最后留下1个人的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下 的是原来第几号的那位。
- python 实现:题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下 的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下 的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 【程序37】 题目:有n个人围成一圈,顺序排号。从第一个人开始报数 (从1到3报数),凡报到3的人退出圈子,问最后留下的是 原来第几号的那位。
- Java解决有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
- java 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- Python3:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- oracle单引号和双引号的区别
- 接口与多态
- Truck History(最小生成树)
- 自己初步了解python数据爬虫
- Hdu 4003 Find Metal Mineral 树型背包DP
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 找规律 permutation
- UVA 442 栈解析表达式
- oracle(四)
- Java反射
- SQL ORDER BY 子句
- CodeForces
- POJ 2503 Babelfish(STL、二分、字典树、哈希)
- caffe源码追踪-net