「n个人报数java」n个人报数3的剔除
本篇文章给大家谈谈n个人报数java,以及n个人报数3的剔除对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、用JAVA编写,有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈
- 2、JAVA围圈报数 问题
- 3、java报数算法题
- 4、java编程 有n个人围成一个圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到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的剔除的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。