- package com.itheima;
- import java.util.ArrayList;
- class Mytestclass {
-
-
-
- public void method(ArrayList al,int size,int y){
- if(al.size()!=1){
- for (int x = 1; x <size+1; x++) {
- if((x+y)%14==0){
- if(x==size){
- al.remove(x);
- y=0;
- method(al,al.size(),0);
-
- }
- else{
- al.remove(x);
- }
- }
- else {
- if(x==size){
- y=(x+y)%14;
- method(al,al.size(),y);
-
- }
-
- }
-
- }
-
- }
-
- }
-
- }
-
-
-
-
- public class Test10 {
-
- public static void main(String[] args) {
- ArrayList<Integer> al=new ArrayList<Integer>();
- for (int i = 1; i < 101; i++) {
- al.add(i);
- }
-
- System.out.println(al);
- Mytestclass mtc=new Mytestclass();
- mtc.method(al,100,0);
- System.out.println(al);
-
- }
- }
复制代码 上面程序,是解决下面这个问题:
有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
我想问各位大神的是,我的代码哪里写错了,运行抛出角标越界异常,然后如果我的思路不正确,还请大神们给一个比较清楚思路的代码 谢谢啦
|