javaSE_06Java中的数组(array)-提高练习

1.求1!+2!+3!+···+30!的和,定义一个方法

public class Test1{
    public static void main(String[] args){
        //1.求1!+2!+3!+···+30!的和,定义一个方法
        long sum=0;
        for(int i=1;i<=30;i++){
            sum+=getJieCheng(i);
        }
        System.out.println("sum="+sum);
    }

    public static int getJieCheng(int a){
        int jieCheng=1;
        for(int i=1;i<=a;i++){
            jieCheng*=i;
        }
        return jieCheng;
    }

}

2.定义一个整型数组,求数组中奇数的个数和偶数的个数

public class Test2{
    public static void main(String[] args){
        //2.定义一个整型数组,求数组中奇数的个数和偶数的个数
        int[] arr={1,3,5,6,2,56,5};

        //偶数的个数
        int count=0;
        for(int i=0;i<arr.length;i++){
            if(arr[i]%2==0){
                count++;
            }
        }
        System.out.println("Evencount="+count);
        System.out.println("Oddcount="+(arr.length-count));
    }
}

3.oddArr={1,3,5,0,0,6,6,0,5,4,7,0,5}要求将数组中为0的项去掉,将不为0的项存入一个新数组

public class Test3{
    public static void main(String[] args){
        //3.oddArr={1,3,5,0,0,6,6,0,5,4,7,0,5}
        //要求将数组中为0的项去掉,将不为0的项存入一个新数组
        int[] oddArr={1,3,5,0,0,6,6,0,5,4,7,0,5};

        //计算数组中0的个数,为新数组做准备
        int count=0;
        for(int i=0;i<oddArr.length;i++){
            if(oddArr[i]==0){
                count++;
            }
        }

        //创建新数组
        int count1=0;
        int[] newArr=new int[oddArr.length-count];
        for(int i=0;i<oddArr.length;i++){
            if(oddArr[i]!=0){
                count1++;
                newArr[count1-1]=oddArr[i];
            }
        }
        for(int m:newArr){
            System.out.print(m+" ");
        }

    }
}

4.有30个0~9之间的数字,统计0~9中每个数字出现的次数

import java.util.Arrays;
public class Test4{
    public static void main(String[] args){
        //有30个0~9之间的数字,统计0~9中每个数字出现的次数
        //int random=(int)(Math.random()*10);
        int[] arr=new int[30];

        //给数组赋值
        for(int i=0;i<arr.length;i++){
            arr[i]=(int)(Math.random()*10);
        }

        //统计每个数的出现的次数
        int[] count=new int[10];

        for(int i=0;i<count.length;i++){
            for(int j=0;j<arr.length;j++){
                if(arr[j]==i){
                    count[i]++;
                }
            }
        }

        System.out.println("原数组中的值:"+Arrays.toString(arr));
        System.out.println("从0~9每个数字出现的次数:"+Arrays.toString(count));
    }
}

5.在排序好的数组中添加一个数字,将数字放在一个合适的位置

import java.util.Arrays;
public class Test5{
    public static void main(String[] args){
        //5.在排序好的数组中添加一个数字,将数字放在一个合适的位置
        int[] arr=new int[20];

        //给数组添加数字
        for(int i=0;i<arr.length;i++){
            arr[i]=(int)(Math.random()*30)+1;
        }
        System.out.println("原数组:"+Arrays.toString(arr));
        //给数组排序
        //选择排序
        for(int i=0;i<arr.length-1;i++){
            int index=i;
            for(int j=i+1;j<arr.length-1;j++){
                if(arr[index]>arr[j]){
                    index=j;
                }
            }

            //实现交换
            int temp=arr[i];
            arr[i]=arr[index];
            arr[index]=temp;
        }
        System.out.println("排好序的数组:"+Arrays.toString(arr));

        //定义一个放入的数字
        int a=5;

        //先获取数字应该放入的位置
        int count=0;
        for(int i=0;i<arr.length;i++){
            if(arr[i]<a){
                count++;
            }
        }

        //将新的数字放到数组中
        int[] newArr=new int[21];
        for(int i=0;i<newArr.length;i++){
            if(i<=count){
                newArr[i]=arr[i];
            }else if(i==count+1){
                newArr[i]=a;
            }else{
                newArr[i]=arr[i-1];
            }
        }
        System.out.println("插入数字后的新数组:"+Arrays.toString(newArr));
    }   
}
原文地址:https://www.cnblogs.com/TCB-Java/p/6770150.html