您的位置:首页 > 编程语言 > Java开发

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

2017-06-12 09:57 288 查看
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));
}
}

运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息