tbwshc

tbw

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

常用链接

留言簿(4)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

什么是约瑟夫环呢?
  约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
  我们用程序说话,实现约瑟夫环:

import java.util.Scanner;
public class Josephus{
 private static class Node{
  public int no;//编号
  public Node next;//下一个节点

 public Node(int no){
  this. no=no
 }
 }
public static void main(String[]args)  {
      SCanner scanner=new Scanner(System.in);
      System.out.print('out. print("请输入总人数:");
      int totalNum=scanner. nextInt);
      System.out.print("请输入报数的大小:");
      int cycleNum=canner. nextInt();
      Node heade==new Node(1);
      Node pointer=heade;
      for(int i=2;i<=totalNum;i++){
           pointer.next=new Node(i);
           pointer=pointer.next;
 }


pointer=pointer. next;
pointer. next=header;
//初始化环形链表结束
System.out.p:Intln("out. println("以下是出列tb的顺序:‘)‘
while (pointer!,pointer. next)  {
for (int i=1;:<cycleNum; i++)
    pointer=pointer. next;
    }
    System.out.prlntln(pointer.next.no)out. println(pointer. next.no);
    pointer. next=pointer. next. next;
}
System. out. println(pointer.next.no);
}
}



posted on 2012-09-26 12:04 tbwshc 阅读(946) 评论(-1)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理