约瑟夫环_java_数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约瑟夫环_java_数组相关的知识,希望对你有一定的参考价值。
package test;
import java.util.Scanner;//键盘输入
/**
public class test{
public static void main(String[] args){
//提示输入总人数
System.out.println("请输入做这个游戏的总人数:");
Scanner sca=new Scanner(System.in);
int m=sca.nextInt();
//提示输入要出圈的数值
System.out.println("请输入要出圈的数值:");
int n=sca.nextInt();
System.out.println("按出圈的次序输出序号:");
//创建有m=6个值的数组
int[] a=new int[m];
//初始长度,以后出圈一个,长度就减一
int len=m;
//给数组赋值
for(int i=0;i<a.length;i++)
a[i]=i+1;
//i为元素下表,j代表当前要报的数
int i=0;
int j=1;
while(len>0){ //len=6 循环6次
if(a[i%m]>0){
if(j%n==0){//找到要出圈的人,并把圈中人数减一 此时的n=3
//System.out.print(i+"dljahjd");
System.out.print(a[i%m]+" ");
a[i%m]=-1;
j=1;
i++;
len--;
}else{
i++;
j++;
}
}else{//遇到空位了,就跳到下一位,但j不加一,也就是这个位置没有报数
i++;
}
}
}
}
以上是关于约瑟夫环_java_数组的主要内容,如果未能解决你的问题,请参考以下文章