黑马程序员技术交流社区

标题: 关于丢手帕问题,我的代码实现 [打印本页]

作者: 冒牌高手    时间: 2014-9-21 20:33
标题: 关于丢手帕问题,我的代码实现
本帖最后由 冒牌高手 于 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;
        }
        
}



作者: lanzy1989    时间: 2014-9-21 20:58
怎么跟喝可乐问题差不多?




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