java实操题:一个数组有100个元素,每次移除该数组第7的整数倍元素......

题目:

一个数组有100个元素,每次移除该数组第7的整数倍元素,全部移除后,将新的数组再次移除第7的整数倍元素,如此循环下去,当最后数组内元素个数为6时终止循环,请用程序模拟实现该过程。

 

思路:因为数组长度固定,不能直接删除元素,所以采取用新数组存值的方式把需留下的值保存下来。代码只是简单实现了这道题,不是最好的设计。

步骤: 1、先找出对应7整数倍下标,存到新数组保存下来(将元素下标+1 除以7,若能整除,则跳过,不保存)

    2、循环1的操作,。

public class Array {
    public static void main(String[] args) {
        int[] array = new int[100];
        for (int i=0;i<100;i++){
            array[i]=i+1;
            System.out.print(array[i]+",");
        }
        int[] newArray;//定义一个新数组存放元素
        int delTime=1;//记录执行删除的次数
        while (array.length/7 >= 1) {
            System.out.println();
            newArray = new int[array.length - array.length / 7];
            for (int i = 0, j = 0; i < array.length; i++) {
                if ((i + 1) % 7 != 0) {
                    newArray[j] = array[i];
                } else {
                    continue;
                }
                System.out.print(newArray[j] + ",");
                j++;
            }
            System.out.println();
            System.out.println("第"+ delTime++ +"次执行删除后数组长度为" + newArray.length);
            array = newArray;//放回原数组
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/icemargin/p/12786373.html