问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

N只猴子站成一行,每M只报数。

发布网友 发布时间:2024-10-22 07:51

我来回答

2个回答

热心网友 时间:2024-10-24 08:31

import java.util.ArrayList;
import java.util.List;

public class Monkey {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
int count = getN(args);
ArrayList list = (ArrayList) getList(count);
int M = 3;
String direction = "正";
int serial = M;

while (list.size() > 2 ) {
if ( serial < list.size()) {
System.out.println( direction + list.get(serial ) + "离队");
list.remove( serial );
serial = serial + M;
}else{
serial = serial - list.size();

list = (ArrayList) reversal(list);
direction = direction.equals("正") ? "反":"正";
}
}
System.out.println( list.get(1) + "是大王");

} catch (Exception e) {
System.out.println(e.getMessage());
}
}

private static List getList(int count) {
ArrayList list = new ArrayList();
for (int i = 0; i < count; i++) {
list.add(new Integer(i + 1).toString());
}
return list;
}

private static int getN(String[] args) throws Exception {
int count = 0;
try {
count = Integer.parseInt(args[0]);
} catch (Exception e) {
throw new Exception("请输入正确的猴子总数");
}
return count;
}

//反转数组中的顺序
private static List reversal(List list){
List newlist = new ArrayList();
for( int i = list.size() -1; i >= 0; i-- ){
newlist.add(list.get(i));
}
return newlist;
}
}

热心网友 时间:2024-10-24 08:22

哈哈,猴子选大王啊,以前用C++写的,现在JAVA是主了,用JAVA写了个,上面的较复杂
public class Kings {
public void selectKing(int num,int m) {
int count = 0;// 记录选出的猴子数
int[] a = new int[num];
// 初始化数组,每个元数代表一只猴子.
for (int i = 0; i < num; i++) {
a[i] = 1;
}
// 如果选出的猴子的个数是猴子总数-1则大王已经选出,跳出循环
int k = 0;
while (count < num - 1) {
for (int i = 0; i < num; i++) {
k += a[i];
// 选种的猴子出列(数组中体现:值变为0)
if (k == m) {
count++;
a[i] = 0;
k = 0;
}
}
}
for (int i = 0; i < a.length; i++) {
if (a[i] != 0) {
System.out.println("Always you(gyh) are the first in my heard! But now,The king is "+ (i + 1) + "st!");
}
}
}
public static void main(String[] args) {
int num = 32;// 猴子的数量
int m = 3;// 循环基数
new Kings().selectKing(num,m);
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
山东沃尔德集团集团所辖公司介绍 齐鲁银行无忧贷和市民贷哪个好 什么叫补按揭 后按揭贷款什么意思 买房者续按揭有什么危害 加按揭是什么意思 八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 桂东八面山动物物种 桂东县土地资源 ...做了 一道菜,男孩吃完了,但是觉得味道怪 怪的,于是他 一个女的给男的做了一盘肉,男的觉得味道怪怪的,就问是什么肉,女的说... 电视剧家宴里周总穿的皮衣是什么牌子 ...都发霉了,看到有一个好的,就吃了,但是味道怪怪的。就吃了一个,没... 我想退订移动业务,钱会还么? 连续两天梦到同一个梦,在高速公路被追杀,后来我开车下了高速,我老婆就... 我用手机办理了业务,但过了一会就退了,那他会把钱还给我吗 这个退订,钱可以返回?以为是本月生效。在线等 求《钢铁是怎样炼成的》《骆驼祥子》《朝花夕拾》好词佳句 市面上的托卡皮草是什么动物的毛 托斯卡纳皮草轻还是重 ...网的招聘信息是真的吗?为什么有个苏州的招聘很多,而且工资又高_百度... 8岁的孩子喜欢吃手指是怎么回事? 宝宝喜欢吮吸手指,应该阻止吗? 2岁半宝宝吸手指怎么办 洗衣机清洗加盟哪个行? 什么叫净资产,净资产收益率的公式? 有关妻管严的句子 骨龄大于实际年龄怎么办 ...等待数据返回之后如何继续运行 调用serialPort1.Write()的方法... python 怎么写入不定个数的短线-呢? 第二次鸦片战争后的内忧外患中"内忧"和"外患"分别指什么? Windows巧用Python工具,快速格式化乱序的json文本 python如何创建json文件? 去泰国旅游可以和人妖睡觉吗 如何在泰国和人妖过夜 为什么手机连不上WiFi - 知百科 花草树木有哪些奇异的特征? 读《被掠走的中国国宝》有感 朝阳湖风景区一日游攻略 紧急!为什么我家所有的exe文件都说遇到问题需要关闭?该怎么办? 电脑开机显示explorer. exe遇到问题需要关闭怎么办? 打开文件夹出现explorer.exe 遇到问题需要关闭,重装系统也无法解决,是... 电脑打开后缀为.exe的程序时都说遇到问题需要关闭!急,怎么办?? 公证有哪些法律特征 公证是由人民法院依照法定程序所为的与公证有关的法律事务的一种非诉... 受骗的婚姻能请求法院撤销吗 宋江为何杀阎婆惜朱仝为何义释宋江?