Java编程实现:设有n个人围成一圈,从第一个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,...,如此反复到所有人出列为止。设n个人的编号为1到n,打印出出列的顺序。
序。
package test;
public class Test {
public static void main(String[] args) {
play(10,7);
}
private static boolean same(int[] person,int l,int n) {
for (int i=0; i<l; i++) {
if(person[i] == n) {
return true;
}
}
return false;
}
public static void play(int playerNum, int step ) {
int[] person = new int[playerNum];
int counter = 1;
while(true) {
if(counter > playerNum*step) {
break;
}
for(int i=1;i<=playerNum;i++) {
while(true) {
if(same(person,playerNum,i) == false) {
break;
}else {
i = i+1;
}
}
if(i > playerNum) {
break;
}
if(counter%step == 0) {
System.out.println(i+" ");
person[counter/step -1] = i;
}
counter +=1;
}
}
System.out.println();
}
}
序。