在网上闲逛,看到有一道题目如下:
n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针从1到k数数,每数到k的人退出圈子,圈子缩小,然后从下一个人继续从1到k数数,重复上面过程。求最后推出圈子的那个人原来的编号。
这就是经典的约瑟夫环问题啊,所以,用java链表写了个。
首先,创建一个链接节点类 LinkedNode.java
然后 创建环形链表类:LinkedList.java
最后一个测试类 Josephus.java
ok,输出结果如下:
王五 is removed!
刘九 is removed!
张三 is removed!
孙八 is removed!
李四 is removed!
老大 is removed!
周十 is removed!
老二 is removed!
钱七 is removed!
赵六 is the last element!
呵呵。。大家多提意见!
SRC下载(eclipse工程):
>
n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针从1到k数数,每数到k的人退出圈子,圈子缩小,然后从下一个人继续从1到k数数,重复上面过程。求最后推出圈子的那个人原来的编号。
这就是经典的约瑟夫环问题啊,所以,用java链表写了个。

首先,创建一个链接节点类 LinkedNode.java
然后 创建环形链表类:LinkedList.java
最后一个测试类 Josephus.java
ok,输出结果如下:
王五 is removed!
刘九 is removed!
张三 is removed!
孙八 is removed!
李四 is removed!
老大 is removed!
周十 is removed!
老二 is removed!
钱七 is removed!
赵六 is the last element!
呵呵。。大家多提意见!

SRC下载(eclipse工程):
>
作者:博爱老头@博爱老头的草屋
地址:http://www.icnote.com/post/30/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
&^& Said,
2008/11/17 09:43
我添加的是数组名__personlist
String[] _personlist={"qq","ww","ee","rr","tt","yy","uu","ii","pp","aa"};
String[] _personlist={"qq","ww","ee","rr","tt","yy","uu","ii","pp","aa"};
&^& Said,
2008/11/14 16:55
LinkedList.addLast(object object)怎么理解 我的程序说这里有错误
Exception in thread "main" java.lang.NullPointerException
at Josephus.LinkedList.addLast(LinkedList.java:76)
at Josephus.Josephus.addNode(Josephus.java:69)
at Josephus.Josephus.main(Josephus.java:81)
Exception in thread "main" java.lang.NullPointerException
at Josephus.LinkedList.addLast(LinkedList.java:76)
at Josephus.Josephus.addNode(Josephus.java:69)
at Josephus.Josephus.main(Josephus.java:81)
&^& Said,
2008/11/14 10:31
jp.doLogic(_personlist.length); 是剔除最后队列中最后一个 我执行了以后 经过那个while(limit>1)之后 总是剔除最后一个
&^& Said,
2008/11/13 17:14
你的那个int _persion=4 是定义开始第一个人的位置吗?然后删除的位置是第几个人,在数组中又是哪个位置?
&^& Said,
2008/11/12 14:18
虽没怎么看懂 我按照你上面的写了 但结果不是这样的 我是这样写的数组
int _persion=4;
String[] _personlist={"qq","ww","ee","rr","tt","yy","uu","ii","pp","aa"};
结果是
aa is removed
qq is removed
aa is removed
the last removed is aa
int _persion=4;
String[] _personlist={"qq","ww","ee","rr","tt","yy","uu","ii","pp","aa"};
结果是
aa is removed
qq is removed
aa is removed
the last removed is aa
&^& Said,
2008/10/30 14:13
假如转过了一圈 转到第一个位置的后面去了 以前的第一个数的位置会移动吗 我看了几遍了 还是看不懂
nanber1 Said,
2008/08/27 11:41
不错!学习了
分页: 1/1
1
1


下载文件
文章来自: 本站原创
Tags:
自己整理的一些表单验证的通用方法(javascript)
fc6安装mysql-Administrator系列产品







