public class LuckyMan {
public static void main(String args[]){
int a[] = {1,2,3,4,5,6,7,8,9,10};
start(a);
}
public static void start(int a[]){
int n = a.length;
if(n == 1){
System.out.println("幸运人士为:" + a[0]);
}else{
for(int i=0; i<n-1; i++){ //将奇号位置为0
if(i % 2 == 0){
a[i] = 0;
}
}
int newN = n / 2; //新数组长度为原数组长度的一半
if(n>1){ //将原数组非0元素复制到新数组中
int temp[] = new int[newN];
int j = 0;
for(int i=0; i<n; i++){
if(a[i] != 0){
temp[j] = a[i];
j++;
}
}
start(temp);
}
}
}
}
否则你倒数第一个基数就不会置0,数组分半时赋值时,非0元素就多了,所以数组越界了