六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 30|回复: 0

“猴子选大王”的java实现

[复制链接]

升级  96%

10

主题

10

主题

10

主题

童生

Rank: 1

积分
48
 楼主| 发表于 2013-2-3 11:19:07 | 显示全部楼层 |阅读模式
题目:n只猴子围成一圈报数,报“m”的人自动离开,然后下一位重新从1开始报数,一直循环,最后剩下的那个猴子就是猴大王
 
import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class OutQueue {public int getPosition(List<String> persons, int num){if(persons.size() == 0){return -1;}int position = num % persons.size();if(position == 0){position = persons.size();}return position;}public void outQueue(List<String> persons, int num){int count = 0;while(!persons.isEmpty()){int position = this.getPosition(persons, num);Iterator<String> it = persons.iterator();while(it.hasNext()){String name = it.next();count ++;if(count == position){System.out.println(name + " is out queue");it.remove();count = 0;position = this.getPosition(persons, num);}}}}/** * @param args */public static void main(String[] args) {List<String> persons = new ArrayList<String>();persons.add("a");persons.add("b");persons.add("c");persons.add("d");persons.add("e");persons.add("f");OutQueue oo = new OutQueue();oo.outQueue(persons, 100);}} 
欢迎拍砖!
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表