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

时间:2023-03-09 12:46:58
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));
}
}