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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冒牌高手 中级黑马   /  2014-9-21 20:33  /  1068 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 冒牌高手 于 2014-10-27 21:14 编辑

求大神给看看有没有错误,自己看了下10个人和15个人的没有错误
[code]/*
* 思路:用链表,增删快,里面有一个小循环,从1到3的循环,如果到3了就让指针变为1,再 继续
* 最后如果剩下的人不到3个了就重复,3个循环的指针定义的范围要广一点吧
* 居然成功了....
*/

import java.util.LinkedList;
import java.util.List;

public class ThrowTowel {
public static void main(String[] args) {
                getNum();
        }
        public static void getNum(){
                List<Integer> list=getLinkedList();
                int flag=1;
                int index=0;
                while(list.size()>1){
                        if(flag==3){
                                //永远不会出现这个情况了,所以可以删去了
                                /*if(index==list.size())
                                        index=list.size()-1;*/
                                System.out.println(list.remove(index));
                                index-=1;
                                flag=0;
                        }
                        index++;
                        flag++;
                        //下面是指针还原,如果大于等于size了就应该从0角标开始
                        if(index>=list.size()){
                                index=0;
                        }
                }
                System.out.println(list);
        }
//这里代表从1到N的一圈人
        public static List<Integer> getLinkedList(){
                List<Integer> list=new LinkedList<Integer>();
                for(int i=1;i<=15;i++){
                        list.add(i);
                }
                return list;
        }
        
}


1 个回复

倒序浏览
怎么跟喝可乐问题差不多?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马