java 约瑟夫环 数组实现 已测试

class  YueSeFu

{

    public static int circleRun(int person , int num)

{

int array[] = new int[person];

int flag = 0;

        int person_flag=0;

//—————–初始化数组——————–

        for (int i = 0; i < person ; i++ )

        {

array[i] = i+1;

        }

//—————-执行约瑟夫环规则———————

while(person>1)

{

for (int i = 1; i <= num ; i++, flag++ )

{

if (flag == array.length)

{

                   flag = 0;

}

while(array[flag]==0)

{

flag++;

                    if (flag == array.length)

    {

                       flag = 0;

    }

}

if (i==num )

{

array[flag] = 0;

person–;

}

}

}

//—————-遍历数组,不为零则返回——————–

        for (int i = 0; i<array.length ; i++ )

        {

if (array[i]!=0 )

{

                person_flag = array[i];

}

        }

return person_flag

}

public static void main(String[] args)

{

System.out.println(“最后一个人的编号为:”+ circleRun(14,3));

System.out.println(“最后一个人的编号为:”+ circleRun(11,3));

System.out.println(“最后一个人的编号为:”+ circleRun(2,3));

System.out.println(“最后一个人的编号为:”+ circleRun(2,2));

System.out.println(“最后一个人的编号为:”+ circleRun(3,3));

}

}

运行结果如下:

《java 约瑟夫环 数组实现 已测试》

    原文作者:约瑟夫环问题
    原文地址: https://blog.csdn.net/aakang/article/details/73087805
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞