「n个人报数java」n个人报数3的剔除

博主:adminadmin 2023-03-21 11:06:08 691

本篇文章给大家谈谈n个人报数java,以及n个人报数3的剔除对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用JAVA编写,有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈

大致的思路:定义list集合,利用for循环添加1—n元素,利用if判断,对3取余为0的删除,查看最终输出结果。试着自己做,不懂再问

JAVA围圈报数 问题

以下是完整示例代码,countThree(50, 0, 3);的意思是50个人,从第1个位置起,每3个出一个。第二个参数就是你的问题的解答。

import java.util.*;

import java.lang.*;

import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */

class Ideone

{

public static void main (String[] args) throws java.lang.Exception

{

// your code goes here

countThree(50, 0, 3);

}

/**

* @param n 人的总数

* @param start 开始报数的序号,start n

* @param m 出列的标记(可以大于n)

*/

private static void countThree(int n, int start, int m) {

ListInteger list = new ArrayListInteger();

//初始化列表

for (int i = 1; i = n; i++) {

list.add(i);

}

while (list.size() 0) {

//将前连个移入列表尾端

for (int j = 0; j m-1; j++) {

list.add(list.remove(start));

}

//打印出列的序号

System.out.println(list.remove(start));

}

}

}

java报数算法题

这一句是把还在圈里的进行报数. .. 如果你放在后面的话...有可能那个人已经不在圈里了 但是你先执行了leftCount-- 就会出错 导致while循环提前退出

if (people[index] == true)

baoShu++;

比如说 1 2 3 4 5 第3个人已经是false 了 你第二轮的时候没有先判断他是不是false 直接 leftCount就--了 就出错了

java编程 有n个人围成一个圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出

public class Increase {

public static void rep(boolean[] people) {

int i = 0,j=0,n=people.length,m=n;

while(n2){

i=++i%m;

if (people[i] == true){

j++;

if (j==3){

people[i] = false;

System.out.println(i);

n--;//总人数减1

j = 0;//到3从头数

}

}

}

}

public static void main(String[] args) {

boolean people[] = new boolean[10];

for(int i = 0; i10; i++){

people[i] = true;

}

rep(people);

}

}

main函数为测试例子,打印结果如下

3

6

9

2

7

1

8

5

关于n个人报数java和n个人报数3的剔除的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。