package com.zzb.datastructure.singlelist;
/**
* @Auther: Administrator
* @Date: 2020/1/17 15:31
* @Description: 使用 数组 解决 约瑟夫环 问题
*
* 问题描述:
* total 个人围成一圈,从第 index 个人起从 1 开始报数,数到 target 的那个人出队,出队的那个人的下一个人又开始从 1
* 开始报数,数到 target 的那个人又出队,如此重复,直到圈内的人全部出队,并且求出出队顺序(或者是圈内只剩下一个人,
* 杀人游戏,谁活到最后)
*/
public class JosephuForArrayTest {
public static void main(String[] args) {
// total 个人围成一圈
int total = 3;
// 从第 index 个人起从 1 开始报数
int index = 3;
// 数到 target 的那个人出队
int target = 2;
// 使用数组求出约瑟夫环的出队顺序
int[] orderOfOut = orderOfOut(total, index, target);
System.out.println("出队顺序");
for (int out : orderOfOut) {
System.out.print(out + "\t");
}
/*出队顺序
1 3 2*/
System.out.println();
// 杀
使用数组解决约瑟夫环问题
最新推荐文章于 2024-02-11 19:58:22 发布
本文详细探讨了如何运用数组数据结构解决经典的约瑟夫环问题。通过建立数组模型,阐述了从序列中按特定间隔删除元素的逻辑,最终找到幸存者。这种方法既简单又高效,为理解约瑟夫环提供了一种实用的解决方案。
摘要由CSDN通过智能技术生成