约瑟夫环

获取幸运数字,每次都把3的倍数删掉,直到最后一个数为止。例如1-7中幸运数字为4。

  代码实现:

  参数num指的是要从1-num这些数中获取幸运数字。                                                               

public static int getLuckNum(int num) {

//把1-num这些数存入list集合中
ArrayList<Integer> list=new ArrayList<>();
for(int i=1;i<=num;i++) {
list.add(i);
}

//定义一个计数器
int count=1;

//定义一个索引
int i;
for(i=0;list.size()!=1;i++) {

//当索引i等于集合的大小时,i=0 又重新开始删除元素,直到剩最后一个为止。
if(i==list.size()) {
i=0;
}

//当这个计数器为3的倍数时,则删除当前索引下的元素。
if(count%3==0) {
list.remove(i--);
}

//每遍历一个数,计数器count加一。
count++;
}

//当集合剩最后一个元素时,就返回该元素。
return list.get(i);
}

posted @ 2018-08-14 23:21  我的java编程学习之路  阅读(211)  评论(0编辑  收藏  举报