约瑟夫JAVA代码 约瑟夫问题vb代码( 四 )


//留几个人
int alive = 2;
//总人数
int total = 41;
//自杀者报数
int killMan = 3;
Josephus(alive, total, killMan);
}
/**
* @param alive 存活的人初始位置序号//留几个人
* @param total 总人数
* @param killMan 自杀者报数
*/
public static void Josephus(int alive, int total, int killMan) {
int []man = new int[total];
int count = 1;
int i = 0;
int pos = -1;
while (count = total) {
do {
pos = (pos+1)%total;
if (man[pos] == 0) {
i++;
}
if (i == killMan) {
i = 0;
break;
}
} while (true);
man[pos] = count;
System.out.print("第 " + (pos+1) + " 个人自杀!约瑟夫环编号为:" + man[pos]);
if (count % 2 != 0) {
System.out.print(" - ");
}else {
System.out.println(" -= ");
}
count++;
}
System.out.println();
System.out.println("这 " + alive +" 个需要存活的人初始位置应排在以下序号:");
alive = total - alive;
for (i = 0; itotal; i++) {
if (man[i]alive) {
System.out.println("初始编号:" + (i+1) + ",约瑟夫环编号:" + man[i]);
}
}
System.out.println();
}
}
关于约瑟夫JAVA代码和约瑟夫问题vb代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读