A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© yangben 中级黑马   /  2016-5-29 10:46  /  395 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?

评分

参与人数 2黑马币 +6 收起 理由
ninini + 3 淡定
wowowo + 3 很给力!

查看全部评分

1 个回复

倒序浏览
import java.util.ArrayList;

public class caonimabi {
        public static void main(String[] args) {
                /*
                 * 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。
                 * 问:最后剩下的是100人中的第几个人?
                 */
                ArrayList<Integer> al = new ArrayList<>();
                for (int i = 1; i <= 100; i++) {
                        al.add(i);
                }
               
                        int temp = 0;
                        for (int i = 0; i < al.size(); i++) {
                                temp++;
                                if (temp == 14) {
                                        al.remove(i);
                                        i--;
                                        temp = 0;
                                }
                                if (i + 1 == al.size()) {
                                        //因为回到循环中i就要++;
                                        i = -1;
                                }
                                if (al.size() == 1) {
                                        break;
                                }
                        }
                        System.out.println(al);
               
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马