earthsky 2009-01-15 19:51
浏览 146
已采纳

求一道编程题的解答,最好有代码

N个人,每次数到三,减去一个人,重新开始数,到三再退出。问最后一个人几号?
急求答案

  • 写回答

5条回答 默认 最新

  • bohemia 2009-01-15 22:04
    关注

    呵呵. 好久没写过C了. 自己用LinkedList封装了个循环列表;

    [code="java"]

    import java.util.*;

    public class testArray{
    public static void main(String[] args) {

        CircleList clist = new CircleList();
        clist.add("1");
        clist.add("2");
        clist.add("3");
        clist.add("4");
        clist.add("5");
        clist.add("6");
        clist.add("7");
        clist.add("8");
    
        int i = 1;
        while(clist.getSize()>1){
            while(i<3){
                i++;
            }
            if(i==3){
                clist.delCurr();
                i = 0;
            }   
        }
    
        System.out.println("最后元素:"+clist.getCurr());
        System.out.println("最后长度:"+clist.getSize());
    }
    

    }

    /**
    *循环列表
    */
    class CircleList{
    private int index = 0;
    private List innerList = new LinkedList();

    //返回所有
    public List getAll(){
        return innerList;
    }
    
    public int getSize(){
        return innerList.size();
    }
    //获取当前
    public String getCurr(){
        if(this.index>=this.innerList.size()){
            return null;
        }else{
            return (String)this.innerList.get(this.index);
        }
    }
    
    //删除当前项
    public void delCurr(){
    

    // System.out.println(this.innerList.get(this.index)+" Deleted");
    this.innerList.remove(this.index);

        if(this.index>0){
            this.index --;
        }
    

    // System.out.println("this.innerList.size()"+this.innerList.size());
    }

    //移动到下一项
    public String next(){
        this.index++;
        if(this.index>=this.innerList.size()){
            this.index = 0;
        }
        return (String)this.innerList.get(this.index);
    }
    
    //当前项目插入
    public String add(String ele ){
        this.innerList.add(ele);
        return ele;
    }
    

    }

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序