黑马程序员技术交流社区

标题: 经典题型 [打印本页]

作者: 1169646761    时间: 2014-9-5 01:22
标题: 经典题型
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);                                                                        //把集合中的最后活着的返回
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2