public class Joseph_problem {
//这是一个main方法,是程序的入口:
public static void main(String[] args) {
Scanner zs = new Scanner(System.in);
//打印
System.out.print("输入总人数:");
int m = zs.nextInt();//
//打印
System.out.print("输入剔除的序号:");
int n = zs.nextInt();
josephus(m, n);
}
//判断是否为约瑟夫数,方法,传入两个参数,一个总人数,一个报数
public static void josephus(int m, int n) {
//创建list集合存放人数的序号
LinkedList list = new LinkedList();
//创建list1集合存放约瑟夫数
LinkedList list1 = new LinkedList();
//把序号添加到list集合中
for (int i = 1; i <= m; i++) {
list.add(i);
}
int count = 1;//报数,1开始报数
//循环list集合是否还有元素
while (list.size() >= 1) {
if (count == n) { //判断count==n时,做出记录操作
count = 1; //等于时就重新赋值为1
list1.add(list.removeFirst()); //移除并返回此列表中的第一个元素,并且添加带辛几何中
continue;
} else {
list.add(list.removeFirst());///把不是约瑟夫数的序号往后添加
count++;//报数加1
}
}
//打印,约瑟夫数
System.out.print("输出的约瑟夫数是:" + list1);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/120331.html