import java.util.Scanner;

/**
* 循环列表的Java实现,解决约瑟夫环问题
*
* @author LIU
*
*/
public class LinkedList {
// 定义结点,必须是static
static class Node {
int data;
Node next; Node(int arg1) {
this.data = arg1;
}
} public static void main(String[] args) {
int n = 0, m = 0;// 定义总人数n,和出圈数字m
// 输入n和m
System.out.println("输入总人数n,出圈数字m");
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
m = scanner.nextInt(); // 初始化循环列表,头结点first和尾结点p
Node first = new Node(1);
first.next = first;
Node p = first;
for (int i = 2; i <= n; i++) {
Node temp = new Node(i);
temp.next = p;
p.next = temp;
p = p.next;
}
p.next = first;// 尾接头形成循环链表(p为尾结点) // 执行出圈操作
System.out.println("出圈顺序为:");
while (p != p.next) {
// 下面for循环后,p是第m个结点的前一个结点
for (int i = 1; i < m; i++)
p = p.next;
// 删除第m个结点
System.out.print(p.next.data + " ");
p.next = p.next.next;
}
System.out.print("\n幸运者是:" + p.data);
} }

  

循环列表的Java实现,解决约瑟夫环问题的更多相关文章

  1. php解决约瑟夫环的问题

    php里面解决约瑟夫环还是比较方面的,但是下面的方法太费空间 <?php class SelectKing{ private $m;//幅度 private $n;//总数 public fun ...

  2. C++循环链表解决约瑟夫环问题

    约瑟夫环问题可以简单的使用数组的方式实现,但是现在我使用循环链表的方法来实现,因为上午看到一道面试题规定使用循环链表解决约瑟夫环问题. 什么是约瑟夫环? “约瑟夫环是一个数学的应用问题:已知n个人(以 ...

  3. PHP解决约瑟夫环问题

    PHP解决约瑟夫环问题 一.总结 二.PHP解决约瑟夫环问题 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到 ...

  4. 单向环形链表解决约瑟夫环(Josephus)问题

    一.约瑟夫环问题 Josephu 问题为:设编号为1,2,- n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那 ...

  5. Java学习之约瑟夫环的两中处理方法

    package day_2; import java.util.Scanner; /** * @author Administrator * 约瑟夫环问题: 设编号为 1,2,3,....n的N个人围 ...

  6. JAVA中的约瑟夫环和猴子王问题

    今天在书上(书名< java程序设计经典300例 >李源编著)看了一个有趣的问题,那就是java版的约瑟夫问题,想必大一的小伙伴们早就用c写过了吧 今天我在复习一下 首先问题是这样的n个人 ...

  7. 10行Python代码解决约瑟夫环(模拟)

    http://blog.csdn.net/dengyaolongacmblog/article/details/39208675 #!/usr/bin/env python # coding: utf ...

  8. Java循环链表实现约瑟夫环(搬运)

    public class Josephus { static class Node{ int val; Node next; Node(int v){ val=v; } }//成员类,代表节点,类似于 ...

  9. golang数据结构之用循环链表解决约瑟夫环问题

    josephu.go package link import ( "fmt" ) type Kid struct { ID int next *Kid } func AddKid( ...

随机推荐

  1. Tomcat配置虚拟主机的两种方式

    1.基于主机名的虚拟主机配置 在随意盘符下建立一个目录作为虚拟地址的目录.例如:F:\virtualhost1,在其下建立 test1.html,写入内容例如:test 在tomcat/conf/se ...

  2. PDF 补丁丁 0.4.1.839 测试版发布:调整页面留白

    新的测试版的补丁功能实现了调节页面留白的功能(之前的820版尚未实现该功能),页面合并功能支持从资源管理器拖放文件或目录到列表,还修正了一些问题. 欢迎下载测试.

  3. linux ps命令介绍

    来源<鸟哥的linux私房菜> ps:将某个时间点的程序运作情况撷取下来 [root@linux ~]# ps aux [root@linux ~]# ps -lA [root@linux ...

  4. HTML元素,属性,基础标签

    元素,属性 元素 html有父元素和子元素,被包含的叫子元素,如html是head的父元素,他们是父子关系,head和body是兄弟关系 <html> <head></h ...

  5. PL/SQL安装教程

    转自:http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html

  6. IBatis.net 输出SQL语句(七)

    一.IBatis.net输出SQL语句到控制台 输出IBatis.net生成的SQL语句到控制台,能够方便调试. 如果要想输出IBatis.net的SQL语句到控制台,那么只需要做如下配置即可: &l ...

  7. select2 插件

    官网:http://select2.github.io/ Select2是基于jQuery的一个插件,没有引用jQuery,是没有效果的   1.在实现给select2添加placeholder效果的 ...

  8. 【同行说技术】Python程序员小白变大神必读资料汇总( 三)

    在文章<Python开发.调试.爬虫类工具大全>里面向大家总结了各种实用工具和爬虫技术,今天小编收集了5篇带有实例干货的资料,赶紧来看看吧!另外,喜欢写博客的博主可以申请加工程师博主交流群 ...

  9. IT公司100题-13-求链表中倒数第k个结点

    问题描述: 输入一个单向链表,输出该链表中倒数第k个结点.链表倒数第0个节点为NULL. struct list_node { int data; list_node* next; }; 分析: 方法 ...

  10. android webview实战

    webSettings = wvShowProduce.getSettings();//设置WebView属性,能够执行Javascript脚本webSettings.setJavaScriptEna ...