Java基础题笔记(数组、阶乘)3

  1. 求一维数组中10个数的最大数以及排序后的数组。
    (数组中的数随机生成)
public class Array1 {
	public static void main(String args[]) {
		int score[] = new int[10];
		for (int k = 0; k < score.length; k++) {
			score[k] = (int) (Math.random() * 101);
			System.out.print(score[k] + " ");
		}
		/* 求最大数并排序 */
		int m = 0;
		for (int k = 0; k < score.length; k++) {
			for (int j = 0; j < score.length; j++) {
				if (score[k] < score[j]) {
					int temp = score[k];
					score[k] = score[j];
					score[j] = temp;
				}
			}
			m = score[k];
		}
		System.out.println("\n" + "最大数" + m);

		/* 排序后的数组 */
		for (int k = 0; k < score.length; k++) {
			System.out.print(score[k] + " ");
		}
	}
}

在这里插入图片描述

Arrays类的sort方法可实现快速排序

java.util.Arrays.sort(score);
  1. 编写一个求阶乘的方法,并利用此方法实现一个求组合的方法,输出如下形式。
    c(0,0)
    c(1,0) c(1,1)
    c(2,0) c(2,1) c(2,2)
    c(3,0) c(3,1) c(3,2) c(3,3)
public class Aarry2 {
    /*求阶乘*/
	public static long fac(int n) {
		int res=1;
		for(int i=2;i<=n;i++)
			res=res*i;
		return res;
		
	}
	/*求组合*/
	public static long com(int n,int m) {
		long res=0;
		res=fac(n)/(fac(n-m)*fac(m));
		return res;
		
	}
	
	public static void main(String args[]) {
		for(int n=0;n<=3;n++) {
			for(int m=0;m<=n;m++) {
				System.out.print(com(n,m)+" ");
			}
		    System.out.println();
		    }
	}

}

这里是引用
附python求阶乘
在这里插入图片描述
在这里插入图片描述

  1. 利用(二维)数组保存数据,输出杨辉三角形前5行。
public class Aarry3 {
	
	
	public  static int arr(int i,int j) {
		int r=1;
		int res[][]=new int[5][];
		for(int n=0;n<res.length;n++) {
				res[n]=new int[n+1];
				res[n][0]=1;//首列与尾列都为1
				res[n][n]=1;
				}
		for(int n=2;n<5;n++) {
			for(int m=1;m<n;m++) {
				res[n][m]=res[n-1][m]+res[n-1][m-1];  //把杨辉三角形放入数组
				if(i==n&&j==m) {  //如果与需要输出的行和列相同,输出并结束此次循环
					r=res[n][m];
					break;
				}
			}
		}
		return r;
	}
	
	public static void main(String args[]) {
		for(int n=0;n<5;n++) {
			for(int k=4;k>=n;k--) { //打印空格,因为输出最多5列,所以首行前至少有4个空格
				System.out.print(" ");
			}
			for(int m=0;m<=n;m++) { //二重循环遍历定位并调用方法
			System.out.print(arr(n,m)+" ");
				}
			System.out.println();
		}
	}

}

在这里插入图片描述

  1. 输入一个班的成绩到一维数组中,求最高分、平均成绩,并统计各分段的人数。其中分数段有不及格(<60)、及格(60-69)、中等(70-79)、良好(80~89)、优秀(>90)。
import javax.swing.JOptionPane;

public class ArrayTest {
	public static void main(String args[]){
		
		int n=Integer.parseInt(JOptionPane.showInputDialog("请输入班级人数:"));
		int a[]=new int[n];
		System.out.print("你输入的成绩为:");
		for(int i=0;i<a.length;i++) {
			int g=Integer.parseInt(JOptionPane.showInputDialog("请输入成绩:"));
			a[i]=g;
			System.out.print(g+" ");
		}
		System.out.println();
		
		/*最高成绩*/
		int hight=a[0];
		for(int i=0;i<a.length;i++) {
				if(hight<a[i]) {
					hight=a[i];
				}
		}
		System.out.println("最高分为:"+hight);
		
		/*平均成绩*/
		int sum=0;
		for(int i=0;i<a.length;i++) {
			sum=sum+a[i];
		}
		System.out.println("平均成绩为"+sum/a.length);
		
		/*统计各分段人数*/
		int A=0,B=0,C=0,D=0,E=0;
		for(int i=0;i<a.length;i++) {
			int f=a[i]/10;
			if(f<5) {
				f=5;
			}
			else if(f>=10) {
				f=9;
			}
			switch(f) {
			case 5:E++;break;
			case 6:D++;break;
			case 7:C++;break;
			case 8:B++;break;
			case 9:A++;break;
			}	
		}
		System.out.print("不及格人数"+E
				+"\n"+"及格人数:"+D
				+"\n"+"中等人数:"+C
				+"\n"+"良好人数:"+B
				+"\n"+"优秀人数:"+A);
	}
}

在这里插入图片描述

  1. 编写一个方法求3个数中的最大值,并调用该方法从命令行参数中获得任意3个整数中的最大者。
public class ArgsMaxNum {
	public static void main(String[] args) {
		int x=Integer.parseInt(args[0]);
		int y=Integer.parseInt(args[1]);
		int z=Integer.parseInt(args[2]);
		System.out.print("最大数为:"+MaxNum(x, y, z));
	}
	public static int MaxNum(int x,int y, int z) {
		int m=x;
		if(m<y)
			m=y;
		if(m<z)
			m=z;
		return m;
	}
}

这里是引用

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悢七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值