0
点赞
收藏
分享

微信扫一扫

JAVA系列(一)

天蓝Sea 2022-04-07 阅读 50
java算法

目录


文章目录


一、基础算法

1.遍历二维数组

package com.rickey.exer;

public class Arrayexer {
	public static void main(String[] args){
		int[][] arr = new int[][]{{3,5,8},{12,9},{7,0,6,4}};
		
		int sum = 0;
		for(int i =0;i < arr.length;i++){
			for(int j = 0;j < arr[i].length;j++){
				System.out.println(arr[i][j]);
			}
		}
	}
}

显示结果
请添加图片描述

2.打印杨辉三角

//打印杨辉三角
package com.rickey.exer;

public class Arrayexer2 {
	public static void main(String[] args){
		int arr1[][] = new int[10][10];
		arr1[0][0] = 1;
		for(int i = 1;i < arr1.length;i++){
			for(int j =0;j < arr1[i].length;j++){
				int num1,num2;
				
				try{
					num1=arr1[i-1][j-1];
					}catch(Exception  e){
					num1 = 0;
					}	
				try{
					num2=arr1[i-1][j];
					}catch(Exception  e){
					num2 = 0;
					}	
				arr1[i][j] = num1+num2;
				System.out.print(arr1[i][j]+"\t");
			}
			System.out.print("\n");
		}
	}
}

显示结果
请添加图片描述

3.学生成绩评级系统

package com.atguigu.java;

import java.util.Scanner; 


public class ArrayDemo1 {
	public static void main(String[] args){
	//1.使用Scanner读取学生个数 ctrl+shift+o 导进所有第三方库
	Scanner scanner=new Scanner(System.in);
	System.out.println("请输入学生人数:");
	int number = scanner.nextInt();
	
	//2.创建数组,存储学生成绩,动态初始化
	int[] scores = new int[number];
	
	//3.给数组中的元素赋值
	System.out.println("请输入"+number+"个学生成绩:");
	for(int i = 0;i < scores.length;i++){
		scores[i]=scanner.nextInt();
	}
	//4.获取元素中的最高分
	int maxScore = 0;
	for(int j =0;j<scores.length;j++){
		if(maxScore < scores[j]){
			maxScore = scores[j];
		}
	}
	//5.根据每个学生成绩与最高分的差值,得到每个学生的等级,并输出等级和成绩
	char level;
	for(int z =0;z<scores.length;z++){
		if(maxScore-scores[z]<=10){
			level='A';
		}else if(maxScore-scores[z]<=20){
			level='B';
		}
		else if(maxScore-scores[z]<=30){
			level='C';
		}else{
			level = 'D';
		}
		System.out.println("student is "+z+scores[z]+",grade is "+level);
	}
}
}

显示结果
请添加图片描述

4.创建指定一维数组

/*
 * 创建一个长度为6的int型数组
 * 数组元素在1~30随机赋值且不重复
 */
package com.rickey.exer;

import java.util.Random;
public class Arrayexer3 {
	public static void main(String[] args){
		Random rand = new Random();
		int arr1[] = new int[6];
		boolean BS = true;
		for(int i = 0;i < arr1.length;i++){
			int randNumber = rand.nextInt(30)+1;
				label1:
				{for(int j = 0;j < arr1.length;j++){
					if (randNumber == arr1[j]){
						randNumber = rand.nextInt(30)+1;
						break label1;
						}
					}
			arr1[i] = randNumber;
			System.out.println(arr1[i]);
			}
		}
	}
}

5.求取max、min、avg、sum

//求取一维数组的max min avg sum

package com.rickey.exer;

import java.util.Random;

public class Arrayexer4 {
	public static void main(String[] args){
		Random rand =  new Random();
		int arr[] = new int[10];
		for(int i = 0;i < arr.length;i++){
			int randNumber = rand.nextInt(100);
			arr[i] = randNumber;
		}
		int maxNum = arr[0];
		int minNum = arr[0];
		int sumNum = 0;
		int avgNum = 0;
		for(int i = 0;i < arr.length;i++){
			if(maxNum<arr[i]){
			maxNum = arr[i];
			}
			if(minNum>arr[i]){
			minNum = arr[i];
			}
			sumNum+= arr[i];
		}
		avgNum = sumNum/arr.length;
		System.out.println(maxNum);
		System.out.println(minNum);
		System.out.println(sumNum);
		System.out.println(avgNum);
	}
}

显示结果
请添加图片描述

6.数组复制、反转、查找

1.数组复制

//case 1
package com.rickey.exer;

public class Arrayexer5 {
   public static void main(String[] args){
   	int arr1[]=new int[]{2,3,5,7,11,13,17,19};
   	int arr2[];
   	arr2 = arr1; //不能称作数组的复制
   	for(int i = 0;i < arr2.length;i++){
   		System.out.print(arr2[i]+"\t");
   	}
   	//修改arr1,查看arr2变化
   	for(int i = 0;i < arr1.length;i++){
   		if(i % 2 == 0){
   			arr1[i] = i;
   		}
   	}
   	System.out.print("\n");
   	for(int i = 0;i < arr2.length;i++){
   		System.out.print(arr2[i]+"\t");
   	}
   	//原因:地址一样
   	System.out.println("\n"+arr1);
   	System.out.println(arr2);
   }
}

输出结果
请添加图片描述

//case2
package com.rickey.exer;

public class Arrayexer5 {
	public static void main(String[] args){
		int arr1[]=new int[]{2,3,5,7,11,13,17,19};
		int arr2[] = new int[8];
		for(int i = 0;i < arr1.length;i++){
			arr2[i] = arr1[i];
		}
		for(int i = 0;i < arr2.length;i++){
			System.out.print(arr2[i]+"\t");
		}
		
		//修改arr1,查看arr2变化
		for(int i = 0;i < arr1.length;i++){
			if(i % 2 == 0){
				arr1[i] = i;
			}
		}
		System.out.print("\n");
		for(int i = 0;i < arr2.length;i++){
			System.out.print(arr2[i]+"\t");
		}
		//地址不同
		System.out.println("\n"+arr1);
		System.out.println(arr2);
	}
}

输出结果请添加图片描述

举报

相关推荐

0 条评论