围圈报数java完整代码

2022-05-19 18:55:14   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《围圈报数java完整代码》,欢迎阅读!
报数,完整,代码,java
import java.util.ArrayList; import java.util.List; /*

* 1,2,3,4,5,6,7...n个人围成一个圈,然后进行123报数,

* 当某个人报到3,站出来,后面的人继续报数,报到3就站出来,直至最后一个人。 *

* 方法一:递归; * 方法二:链表; * 方法三:自己编写。 * */

public class BaoShuDemo {

//i可以理解为容器里面每个数的脚码(012...;amount则为报数;x为按1x报数(如按1,2,1,2报数)

List listNum = new ArrayList(); StringBuffer strNum = new StringBuffer(); public void baoshu(int total, int x) {

for (int i = 0; i < total; i++) { listNum.add(i + 1); } for (int i = 0, amount = 1; listNum.size() > 1; i++, amount++) {

if (i >= listNum.size()){ i %= listNum.size();

System.err.println("当前的i " + i); }

if (amount % x == 0) {

strNum.append(listNum.get(i) + " "); listNum.remove(i); amount = 1; } }

System.out.println(strNum.toString()+listNum.get(0)); }

public void baoshu2() { int total = 9;

for (int i = 0; i < total; i++) { listNum.add(i + 1); }

int i = 0, amount = 1, x = 2; while (listNum.size() > 0) { if (i >= listNum.size()){


}



}

i %= listNum.size(); }

if (amount % x == 0) {

strNum.append(listNum.get(i)+" "); x = listNum.get(i); listNum.remove(i); amount = 1; }

if (x != 1)// 如果x==1则不用继续报数,下个人直接退出 i++; amount++; }

System.out.println(strNum.toString());

public static void main(String[] args) { new BaoShuDemo().baoshu2(); }


本文来源:https://www.wddqxz.cn/429b3fd99ec3d5bbfd0a74bb.html

相关推荐