早教吧作业答案频道 -->其他-->
求java代码是《约瑟夫环问题-猴子选大王》[问题描述]一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这
题目详情
求java代码是《约瑟夫环问题-猴子选大王》
[问题描述]
一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
[基本要求]
1. 熟练设计双向循环链表并实现插入、删除、遍历等接口函数;
2. 设计出简单界面,实现用户参数输入和结果输出;
3. 设计函数,实现循环删除第N个猴子,剩下的最后一个是大王;
4. 设计结束后,按要求撰写课程设计报告。
[设计进度]
第1~2天:
讲解课程设计的内容及课题的设计思路,要求学生根据所选题目查阅相关资料,设计出合适的双向循环链表,实现插入、删除、遍历等接口函数。
第3 天:
进行界面设计,并设计出循环删除的函数;界面示例如下:
第4 天:
添加响应事件,在事件中计算出最终结果并显示。响应时间为:当输入密码后,按回车键时,输出最后的序号及出队序列。
第5 天:
测试程序,撰写实践报告。
检查学生的设计,进行课程设计答辩,结合学生的设计情况、学生的出勤情况、课设报告的书写,以及答辩的成绩一起得出学生的课设成绩。
[问题描述]
一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
[基本要求]
1. 熟练设计双向循环链表并实现插入、删除、遍历等接口函数;
2. 设计出简单界面,实现用户参数输入和结果输出;
3. 设计函数,实现循环删除第N个猴子,剩下的最后一个是大王;
4. 设计结束后,按要求撰写课程设计报告。
[设计进度]
第1~2天:
讲解课程设计的内容及课题的设计思路,要求学生根据所选题目查阅相关资料,设计出合适的双向循环链表,实现插入、删除、遍历等接口函数。
第3 天:
进行界面设计,并设计出循环删除的函数;界面示例如下:
第4 天:
添加响应事件,在事件中计算出最终结果并显示。响应时间为:当输入密码后,按回车键时,输出最后的序号及出队序列。
第5 天:
测试程序,撰写实践报告。
检查学生的设计,进行课程设计答辩,结合学生的设计情况、学生的出勤情况、课设报告的书写,以及答辩的成绩一起得出学生的课设成绩。
▼优质解答
答案和解析
无界面!
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class LinkCircle {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n, k, m, i, j, count, p, q;
int[] a = new int[100];
List array = new LinkedList();
p = 0;
q = 0;
count = 0;
n = in.nextInt();
m = in.nextInt();
for (i = 0; i < n; i++) {
array.add(i + 1);
System.out.printf(i != n - 1 ? "%d " : "%d\n", array.get(i));
}
int pos = -1;
int x = 0;
while(array.size() != 1)
{
//x = array.get(pos);
pos += m ;
if(pos >= array.size())
{
pos = pos % array.size();
}
System.out.println("remove pos:" + (pos + 1) + ", value:" + array.get(pos));
array.remove(pos--);
System.out.print("Array : ");
for (i = 0; i < array.size(); i++) {
System.out.printf(i != array.size() - 1 ? "%d " : "%d\n\n", array.get(i));
}
}
System.out.println("res:" + array.get(0));
}
}
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class LinkCircle {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n, k, m, i, j, count, p, q;
int[] a = new int[100];
List
p = 0;
q = 0;
count = 0;
n = in.nextInt();
m = in.nextInt();
for (i = 0; i < n; i++) {
array.add(i + 1);
System.out.printf(i != n - 1 ? "%d " : "%d\n", array.get(i));
}
int pos = -1;
int x = 0;
while(array.size() != 1)
{
//x = array.get(pos);
pos += m ;
if(pos >= array.size())
{
pos = pos % array.size();
}
System.out.println("remove pos:" + (pos + 1) + ", value:" + array.get(pos));
array.remove(pos--);
System.out.print("Array : ");
for (i = 0; i < array.size(); i++) {
System.out.printf(i != array.size() - 1 ? "%d " : "%d\n\n", array.get(i));
}
}
System.out.println("res:" + array.get(0));
}
}
看了 求java代码是《约瑟夫环问...的网友还看了以下:
(1)算出得数写在外圈.(2)观察上图第一个圈,与8相乘的积都是()数;观察第二个圈,9与双数相乘 2020-04-08 …
(1)算出得数写在外圈.(2)观察第一个圈的积,你发现与8相乘的积都是()数;观察第二个圈,你发现 2020-04-08 …
A,B相距10km,一船从A到B后立即返回用3h.知第一小时比第三小时多行8km,问V水.要算式+ 2020-05-13 …
都市圈是城市体系发展到一定阶段时呈现的空间结构模式。下列两图分别表示长三角、湘中都市圈示意图。据此 2020-06-13 …
按规律填数有5个圆圈第一个外圈是1.2.6内圈是10,第二个个外圈是8.1.2内圈是20,第三个圈 2020-07-17 …
数学题~~~~t=0,v=331t=5,v=334t=10,v=337t=15,v=340t=20 2020-07-19 …
我连题目都看不懂.Putthewordsintotherightcircles.tomato,mat 2020-10-29 …
一个体积为V圈=0.05m3的救生圈,自重忽略不计.能否托住一个质量为m人=60kg的人而不致发生危 2020-12-17 …
一个体积为V圈=0.05m3的救生圈,自重忽略不计.能否托住一个质量为m人=60kg的人而不致发生危 2021-01-13 …
一个体积为V圈=0.05m³的救生圈,自重忽略不计.问能否托住一个质量为m人=60kg的人而不致发生 2021-01-13 …