永发信息网

20个人从1数到3,数到3的人输出最后剩下第几个 JAVA编程

答案:2  悬赏:0  手机版
解决时间 2021-02-13 08:17
  • 提问者网友:山高云阔
  • 2021-02-12 17:41
20个人从1数到3,数到3的人输出最后剩下第几个 JAVA编程
最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-02-12 18:02
public class HelloWorld {
public static void main(String[] args) {
int index=1;
for(int i=0; i<20; i++) {
if(i<19) {
if((index++)%3==0) {
System.out.println(i+1);
continue;
}
}else {
System.out.println("最后一个喊:"+(i+1)%3);
}
}
}
}

好像就是这个意思
全部回答
  • 1楼网友:詩光轨車
  • 2021-02-12 18:21
package shop;
import java.util.ArrayList;
import java.util.List;
public class Test {

public static void execute(List list ,int startNumber){
ArrayList removeList = new ArrayList();//保存一次循环后要移除的人
int nextStartNumber = (list.size() + startNumber -1) % 3 + 1;//下一轮第一个人数的数字
for (int i = startNumber; i < list.size()+startNumber; i++) {

if (i % 3 == 0) {
System.out.println("数到3的人是:"+list.get(i-startNumber));
removeList.add(list.get(i-startNumber));
}
}
list.removeAll(removeList);//移除这一次数到3的人
if (list.size() == 1) {
return ;
}
System.out.println("*****************************");
execute(list,nextStartNumber);//递归循环直到剩下最后一个
}

public static void main(String[] args) {
ArrayList list = new ArrayList();
for (int i = 1; i <= 20; i++) {
list.add(i);//二十个人的集合
}
execute(list,1);
for (Integer integer : list) {
System.out.println(integer);
}
}
}
上面是具体的代码实现,我的思路是每次循环,如果数到是3的人就把他移除掉,然后记录下下一次循环的时候第一个数的是几,一直递归下去得出最后一个就是结果了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯