java常用100例

作了好事受到职责而坚持下去,这才是奋斗的本色。——巴尔扎克


本讲内容:java常用100例


例1:打印金字塔 

public class T {
	public static void main(String[] args){
		int lay=10;
		for(int i=1;i<=lay;i++){//表示层
			for(int j=1;j<=lay-i;j++){//找出空格规律
				System.out.print(" ");
			}
			for(int k=1;k<=i*2-1;k++){//找出*规律
				System.out.print("*");
			}
			System.out.println();
		}
	}
}
结果:

         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************



例2:打印空金字塔 

public class T {
	public static void main(String[] args){
		int lay=10;
		for(int i=1;i<=lay;i++){
			for(int j=1;j<=lay-i;j++){
				System.out.print(" ");
			}
			for(int k=1;k<=i*2-1;k++){
				if(i==1||i==lay){//判断该层是否是顶层或者是低层
				System.out.print("*");
				}else{
					if(k==1||k==i*2-1){//第一个和最后一个打*
						System.out.print("*");
					}else{
						System.out.print(" ");
					}
				}
			}
			System.out.println();
		}
	}
}
</span></span>
结果:

<span style="font-size:18px;"><span style="font-size:18px;">         *
        * *
       *   *
      *     *
     *       *
    *         *
   *           *
  *             *
 *               *
*******************


例三:评委打分,去掉成绩最高与最低的分数,得到最后平均分

package a;

import java.io.*;

public class Text {
	public static void main(String[] args) {
		Judge judge = new Judge();
		System.out.println(judge.lastFen());
		System.out.println("最差的裁判是"+(judge.getWorst()+1));
	}
}

class Judge {
	// 定义一个可以存放8个小数数组
	float[] fens = null;
	int size = 8;

	public Judge() {// 构造函数一般进行初始化的
		fens = new float[size];
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		try {// 如果输入是abc等
			for (int i = 0; i < fens.length; i++) {
				System.out.println("请输入第" + (i + 1) + "裁判的成绩");
				fens[i] = Float.parseFloat(br.readLine());
			}
		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();// 只需关br即可(isr即关了),
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	// 得到运动员最后得分
	public float lastFen() {
		float allFen = 0;
		int minIndex = this.getHignFenIndex();
		int maxIndex = this.getLowFenIndex();
		for (int i = 0; i < fens.length; i++) {
			if (i != minIndex && i != maxIndex) {
				allFen += fens[i];
			}
		}
		return allFen / (fens.length - 2);
	}

	// 得到最高分(目的找到最高分的下标)
	private int getHignFenIndex() {
		// 选择法,认为第一个就是最高分
		float maxFen = fens[0];
		int maxIndex = 0;
		for (int i = 1; i < fens.length; i++) {
			if (maxFen < fens[i]) {
				maxFen = fens[i];
				maxIndex = i;
			}
		}
		return maxIndex;
	}

	// 得到最低分(目的找到最低分的下标)
	private int getLowFenIndex() {
		// 选择法,认为第一个就是最低
		float minFen = fens[0];
		int minIndex = 0;
		for (int i = 1; i < fens.length; i++) {
			if (minFen > fens[i]) {
				minFen = fens[i];
				minIndex = i;
			}
		}
		return minIndex;
	}
	
	//得到最差评委
	public float getWorst() {
		float lastFen=this.lastFen();
		int worstIndex=0;//认为最差的
		float cai=Math.abs(fens[0]-lastFen);
		float tempCai=0f;
		for(int i=1;i<fens.length;i++){
			tempCai=Math.abs(fens[i]-lastFen);
			if(cai<tempCai){
				worstIndex=i;
				cai=tempCai;
			}
		}
		return worstIndex;
	}
}


例四:猴子排队
 1:老猴子用冒泡排序
 2:老猴子用选择排序
 3: 老侯用插入排序

public class Text {
	public static void main(String[] args) {
		//定义一个可以装三只猴子的对象数组
		int size=3;
		Monkey[] monkeys=new Monkey[size];
		
		InputStreamReader isr=new InputStreamReader(System.in);
		BufferedReader br=new BufferedReader(isr);
		//初始化各个猴子,直接初始化
		for(int i=0;i<monkeys.length;i++){
			System.out.println("请输入第"+(i+1)+"只猴子的高度");
			try {
				String height=br.readLine();//Float.parseFloat(height)   string to float
				monkeys[i]=new Monkey((i+1)+"",Integer.parseInt(height));
				
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		//让老猴子排序
		Monkey oldMonkey=new Monkey("1",1);
		//老猴子冒泡排序
//		oldMonkey.bubbleSort(monkeys);
//		oldMonkey.selectSort(monkeys);
		oldMonkey.insertSort(monkeys);
		//验证,输出
		oldMonkey.show(monkeys);
		
	}
}

// 猴子类
class Monkey {
	private String id;
	private int height;

	public Monkey(String id, int height) {
		this.id = id;
		this.height = height;
	}

	// 冒泡排队(相邻两两比较)
	public void bubbleSort(Monkey[] monkeys) {
		// 外层循环的次数是length-1
		for (int i = 0; i < monkeys.length-1; i++) {
			// 内循环排每次好的就不用在排了-i
			for (int j = 0; j < monkeys.length - 1 - i; j++) {
				if (monkeys[j].height > monkeys[j + 1].height) {
					//身高交换
					int temp1=0;
					temp1=monkeys[j].height;
					monkeys[j].height=monkeys[j+1].height;
					monkeys[j+1].height=temp1;
					
					//编号交换
					String temp2="";
					temp2=monkeys[j].id;
					monkeys[j].id=monkeys[j+1].id;
					monkeys[j+1].id=temp2;
				}
			}
		}
	}
	
	//选择排序(认为第一个是最小的并记下下标,然后和后面的比较)
	public void selectSort(Monkey[] monkeys){
		for(int i=0;i<monkeys.length;i++){
			//认为下标为i的猴子是最低的
			int minHeight=monkeys[i].height;
			int minIndex=i;
			
			//和后面的比较
			for(int j=i+1;j<monkeys.length;j++){
				if(minHeight>monkeys[j].height){
					//修正一下最小值
					minHeight=monkeys[j].height;
					//修正下标
					minIndex=j;
				}
			}
			if(minIndex!=i){
				//身高交换
				int temp1=0;
				temp1=monkeys[minIndex].height;
				monkeys[minIndex].height=monkeys[i].height;
				monkeys[i].height=temp1;
				
				//编号交换
				String temp2="";
				temp2=monkeys[minIndex].id;
				monkeys[minIndex].id=monkeys[i].id;
				monkeys[i].id=temp2;
			}
		}
	}
	
	//插入排序,思想:认为第一个猴子就是有序的,后面的猴子依次的插入到队伍当中
	public void insertSort(Monkey[] monkeys){
		//开始排序 任务地0个猴子就是有序的所以把第二个猴子插入到已有的队伍当中
		for(int i=1;i<monkeys.length;i++){
			//记录要插入猴子的身高
			int insertHeight=monkeys[i].height;
			String insertNo=monkeys[i].id;
			//记录插入猴子前一个猴子的编号
			int insertIndex=i-1;
			
			while(insertIndex>=0&&monkeys[insertIndex].height>insertHeight){
				monkeys[insertIndex+1].height=monkeys[insertIndex].height;
				monkeys[insertIndex+1].id=monkeys[insertIndex].id;
				insertIndex--;//再跟前面一个比较
			}
			//这时候  insertIndex+1 是要插入的值的前面的值,变成要插入的值   完成值的交换
			monkeys[insertIndex+1].height=insertHeight;
			monkeys[insertIndex+1].id=insertNo;
		}
	}
	
	//显示队列
	public void show(Monkey[] monkeys){
		for(int i=0;i<monkeys.length;i++){
			System.out.println("猴子编号:"+monkeys[i].id+"\t身高"+monkeys[i].height+"cm");
		}
	}
}





  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值