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

© 1169646761 中级黑马   /  2014-9-5 01:22  /  915 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.itcast.test2;

import java.util.ArrayList;

public class Test2 {

        /**
         * @param args
         *  7,约瑟夫环
         */
        public static void main(String[] args) {
                System.out.println(getLucklyNum(500));
        }

        public static int getLucklyNum(int num) {
                ArrayList<Integer> list = new ArrayList<>();                //创建ArrayList集合
                for(int i = 1; i <= num; i++) {                                                //遍历num数字
                        list.add(i);                                                                        //将1到num添加到集合中
                }
               
                int count = 1;                                                                                //数数的变量
                for(int i = 0; list.size() != 1; i++) {                                //只要集合中的元素不是一就循环
                        if(i == list.size()) {                                                        //如果i是超过了最大索引
                                i = 0;                                                                                //重新置为0
                        }
                       
                        if(count % 3 == 0) {                                                        //数到了3的倍数
                                list.remove(i--);                                                        //杀人
                        }
                       
                        count++;                                                                                //循环一次数数变量自增一次
                }
               
                return list.get(0);                                                                        //把集合中的最后活着的返回
        }
}
您需要登录后才可以回帖 登录 | 加入黑马