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]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报