有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
我得出的答案是93,对吗
==================================
- package com.heima.test_kaoshi;
- import java.util.ArrayList;
- public class Test13 {
- /**
- *
- 10、 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
- 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
-
- ---------------------------------------------------------------
- 分析:
- 创建集合,存储1-100编号
- 定义count 用来计数
- 如果集合的长度不为1,就一直循环删除
- 而且指针等于集合长度,就将指针清零
- 计数器叠加,加至14时,清零
- */
- public static void main(String[] args) {
- ArrayList<Integer> list = new ArrayList<>();
- for(int i = 1;i<= 100;i++){
- list.add(i);
- }
-
- int count = 0;
- for(int i = 0;list.size()!=1;i++){
- if(i == list.size()){
- i=0;
- }
- if(count==14){
- list.remove(i--);
- count=0;
- }
- count++;
- }
- System.out.println("最后剩下的是第"+list.get(0)+"号");
- }
- }
复制代码 |
|