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]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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的三轴机械手程序