45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?

2016-08-27 16:17:43 来源:www.45fan.com 【

数组实现的约瑟夫问题有哪些?

说过要将以前写过的文章转过来,这是以前的第一篇blog。

之前是用C++写的,现在做Java了,索性改成了Java版的。看了看以前C++的实现,哈哈,实现得挺烂的,不贴也罢。Java代码如下:

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?/***************************************************************************************

数组实现的约瑟夫问题有哪些?*描述约瑟夫游戏的类

数组实现的约瑟夫问题有哪些?*问题描述:totalNum个人围成圆圈就座,从某人开始编号,从编号为startNum开始从1报数,报数为

数组实现的约瑟夫问题有哪些?*perNum的人退出圆圈。然后由下一个人从1重新报数,如此循环。

数组实现的约瑟夫问题有哪些?*createdby:jdk1.5.0_07+Notepad++

数组实现的约瑟夫问题有哪些?*Copyright(C)CManLH2007.1.9

数组实现的约瑟夫问题有哪些?****************************************************************************************
*/

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?publicclassJosephus{

数组实现的约瑟夫问题有哪些?
privateintstartNum;//第一个开始报数的参与者的编号

数组实现的约瑟夫问题有哪些?privateinttotalNum;//参与游戏的总人数

数组实现的约瑟夫问题有哪些?privateintperNum;//报到此数字则出局

数组实现的约瑟夫问题有哪些?privateintman[];//按座位编号排列

数组实现的约瑟夫问题有哪些?privateintout[];//按出局次序排列

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?
//构造函数,如果参数出错就抛出异常

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?Josephus(intstartNum,intperNum,inttotalNum)throwsException{

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?
if(totalNum<0||startNum<0||startNum>totalNum||perNum<0){

数组实现的约瑟夫问题有哪些?
thrownewException("Josephus构造函数参数错误");

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?
this.startNum=startNum;

数组实现的约瑟夫问题有哪些?
this.perNum=perNum;

数组实现的约瑟夫问题有哪些?
this.totalNum=totalNum;

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?calculate();

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?
//游戏模拟函数

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?privatevoidcalculate(){

数组实现的约瑟夫问题有哪些?
intcount=1;

数组实现的约瑟夫问题有哪些?
intperCounter=0;

数组实现的约瑟夫问题有哪些?man
=newint[totalNum];

数组实现的约瑟夫问题有哪些?out
=newint[totalNum];

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?
for(inti=startNum-2;count<=totalNum;count++){

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?
do{

数组实现的约瑟夫问题有哪些?i
=(i+1)%totalNum;//做循环处理

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?if(man[i]==0){

数组实现的约瑟夫问题有哪些?perCounter
++;

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?if(perCounter==perNum){//当报数刚好为出局的数字时

数组实现的约瑟夫问题有哪些?perCounter=0;

数组实现的约瑟夫问题有哪些?
break;

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?}
while(true);

数组实现的约瑟夫问题有哪些?man[i]
=count;

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?
for(intj=0;j<totalNum;j++){

数组实现的约瑟夫问题有哪些?out[man[j]
-1]=j+1;

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?
//获得在num编号座位上的游戏者出局的次序号

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?publicintpositionNumToKilledNum(intnum){

数组实现的约瑟夫问题有哪些?
return(num>0&&num<=totalNum)?man[num-1]:-1;

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?
//获得在第num出局游戏者的座位号

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?publicintkilledNumToPositionNum(intnum){

数组实现的约瑟夫问题有哪些?
return(num>0&&num<=totalNum)?out[num-1]:-1;

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?
publicStringtoString(){

数组实现的约瑟夫问题有哪些?StringBuilderstring
=newStringBuilder(100);

数组实现的约瑟夫问题有哪些?string.append(
"此约瑟夫游戏信息如下: "

数组实现的约瑟夫问题有哪些?+"参与人数:"+totalNum+" 开始报数人的编号:"+startNum+" 每次出局所报数:"+perNum+" "

数组实现的约瑟夫问题有哪些?+"参加者在环中的编号(出局的次序): ");

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?
for(inti=0;i<totalNum;i++){

数组实现的约瑟夫问题有哪些?string.append((i
+1)+"("+man[i]+")");

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?string.append(
" 参加者出局的次序(在环中的编号): ");

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?
for(intj=0;j<totalNum;j++){

数组实现的约瑟夫问题有哪些?string.append((j
+1)+"("+out[j]+")");

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?
returnnewString(string);

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?
//测试

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?publicstaticvoidmain(String[]args){

数组实现的约瑟夫问题有哪些?Josephusjosephus
=null;

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?
try{

数组实现的约瑟夫问题有哪些?josephus
=newJosephus(3,-1,45);

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?数组实现的约瑟夫问题有哪些?catch(Exceptione){

数组实现的约瑟夫问题有哪些?System.out.println(e);

数组实现的约瑟夫问题有哪些?
return;

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?

数组实现的约瑟夫问题有哪些?System.out.println(josephus);

数组实现的约瑟夫问题有哪些?System.out.println(
"排第25号的人是第"+josephus.positionNumToKilledNum(25)+"个出局");

数组实现的约瑟夫问题有哪些?System.out.println(
"第25个出局的人是排在第"+josephus.killedNumToPositionNum(25)+"");

数组实现的约瑟夫问题有哪些?}

数组实现的约瑟夫问题有哪些?}
 

本文地址:http://www.45fan.com/a/question/68434.html
Tags: 实现 数组 约瑟夫
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部