歌德巴赫猜想, 任何一个大于六的偶数可以拆分成两个质数的和
/** * @author: 毛利 */public class Gedebahe { /* 任何一个大于六的偶数可以拆分成两个质数的和 */ public static void main(String[] args) { int num = Integer.parseInt(args[0]); System.out.println(num); // 大于6直接retrun if (num <= 6) { System.out.println("参数错误!"); return; } // 不是偶数pass if (num % 2 != 0) { System.out.println("参数错误!"); return; } // 创建一个对象Gedebahe Gedebahe g = new Gedebahe(); //1 不是质数,2 是偶数,因此从 3 开始循环 // 遍历到num/2就可以了 for (int i = 3; i <= num / 2; i++) { if (i % 2 == 0) { //如果为偶数,退出本次循环 continue; } //当 i 与 num-i 都为质数时,满足条件,打印 if (g.isPrime(i) && g.isPrime(num - i)) { System.out.println(i + " + " + (num - i) + " = " + num); } } } // 判断是否质数 public static boolean isPrime(int x) { // 能够整除的就是偶数 for (int i = 2; i < x; i++) { if (x % i == 0) { return false; } } return true; }}
定义一个 int 型的一维数组,包含 10 个元素,
分别赋一些随机整数,然后求出所有元素 的最大值, 最小值,平均值,和值,并输出出来。
/** * @author: 毛利 */public class ArrayNumber { /* 定义一个 int 型的一维数组,包含 10 个元素,分别赋一些随机整数 然后求出所有元素 的最大值, 最小值,平均值,和值,并输出出来。 */ public static void main(String[] args) { int[] arrayNumber = new int[10]; System.out.println("随机插入10个整数"); for (int i = 0; i < arrayNumber.length; i++) { // 通过index 来创建array Math.random [0,1] int取整 arrayNumber[i] = (int) (100 * Math.random()); System.out.print(arrayNumber[i] + " "); } System.out.println(); System.out.println("下面最大值, 最小值,平均值,和值"); int max = arrayNumber[0]; int min = arrayNumber[0]; int sum = 0; // 冒泡排序 两两比较求最大最小 for (int i = 0; i < arrayNumber.length; i++) { if (max < arrayNumber[i]) max = arrayNumber[i]; //求最大值 if (min > arrayNumber[i]) min = arrayNumber[i]; //求最小值 sum += arrayNumber[i]; } System.out.println("其中 Max=" + max + ",Min=" + min + ",Sum=" + sum + ",Avg=" + sum / 10.0); }}
定义一个 20*5 的二维数组,用来存储某班级 20 位学员的 5 门课的成绩;这 5 门课 按存储顺序依次为:core C++,coreJava,Servlet,JSP 和 EJB。
import java.util.Random;/** * @author: 毛利 */public class Student { public static void main(String[] args) { /* 定义一个 20*5 的二维数组,用来存储某班级 20 位学员的 5 门课的成绩; 这 5 门课 按存储顺序依次为:core C++,coreJava,Servlet,JSP 和 EJB。 */ int [][] mark = new int[20][5]; int[] totalScores = new int[20];// 定义一个数组用于存储每个学员的总分 int[] avgClassScores = new int[5];// 定义一个数组存储所有学员某门课程的平均分 int avgSumScores = 0; Random rd = new Random();// 创建Random对象 System.out.println("\t\t\t\t\t\t\t\t学员成绩表"); System.out.println("学员编号\t\t" + "coreC++\t\t" + "coreJava\t\t" + "Servlet\t\t" + "JSP\t\t" + "EJB\t\t" + "总成绩\t\t"+ "平均分\t\t"); for (int i = 0; i < mark.length; i++) { //输出学号 System.out.print(i+1+"\t\t\t"); for (int j = 0; j < mark[i].length; j++) { // 随机赋值 +50保证了成绩不至于太低 mark[i][j]=rd.nextInt(50)+50; // 打印一个人的成绩 System.out.print( mark[i][j]+"\t\t\t"); //求和;求一个学生的总成绩 totalScores[i]+=mark[i][j]; //求单科成绩的全班同学的总分 avgClassScores[j]+=mark[i][j]; } System.out.print(totalScores[i]+"\t\t\t"+ totalScores[i]/5.0); System.out.println(); } System.out.print("平均分"); int sum = 0; for (int x = 0; x < avgClassScores.length; x++) { sum = sum + avgClassScores[x]; System.out.print("\t\t" + avgClassScores[x] /20.0 );//输出打印平均成绩 } System.out.print("\t\t" + sum/20.0+ "\t\t"+ sum/100.0 ); }}
完成九宫格程序 在井字形的格局中 (只能是奇数格局),放入数字 (数字由),使每行每列以及斜角线的和 都相等
经验规则:
认为,可以先把最中间的数填到九宫格的最中间位置;再按上面的规则逐个填写, 而且 填的时候还可以把头尾对应的数填到对应的格子中。(第 n 个值跟倒数第 n 个值 对应,格局上以最中 间格为轴心对应)
import java.util.Scanner;/** * @author: 毛利 */public class NinePalace { /* 完成九宫格程序 */ public static void main(String[] args) { // 定义 N 为九宫格的行列数,需要输入 System.out.println("请输入九宫格的行列规模(只能是奇数的)"); Scanner n = new Scanner(System.in); int N; //判断格局是否奇数 (可判断出偶数、负数 及小数) double d; while (true) { d = n.nextDouble(); N = (int) d; if ((d - N) > 1.0E-4 || N % 2 == 0 || N < 0) { System.out.println("输入出错,格局只能是正奇数。请重新输入"); } else break; } //九宫格填写方法 int[][] result = new int[N][N]; //定义保存九宫格的数组 int row = 0; //行 初始位置 int col = N / 2; //列 初始位置,因为列由 0 开始,故 N/2 是中间位置 for (int i = 1; i <= N * N; i++) { result[row][col] = i; row--; col++; if (row < 0 && col >= N) { col--; row += 2; } //行列都越界 else if (row < 0) { row = N - 1; } //行越界 else if (col >= N) { col = 0; } //列越界 else if (result[row][col] != 0) { col--; row += 2; } //有冲突 } //打印出九宫格 for (int k = 0; k < N; k++) { for (int j = 0; j < N; j++) { System.out.print(result[k][j] + "\t"); } System.out.println(); } }}