前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java编程题目(三)

Java编程题目(三)

作者头像
润森
发布2019-11-06 11:39:14
1K0
发布2019-11-06 11:39:14
举报
文章被收录于专栏:毛利学Python

歌德巴赫猜想, 任何一个大于六的偶数可以拆分成两个质数的和

代码语言:javascript
复制
/** * @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 个元素,

分别赋一些随机整数,然后求出所有元素 的最大值, 最小值,平均值,和值,并输出出来。

代码语言:javascript
复制
/** * @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。

  • 循环给二维数组的每一个元素赋 0~100 之间的随机整数。
  • 按照列表的方式输出这些学员的每门课程的成绩。
  • 要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。
  • 要求编写程序求所有学员的某门课程的平均分
代码语言:javascript
复制
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   );    }}

完成九宫格程序 在井字形的格局中 (只能是奇数格局),放入数字 (数字由),使每行每列以及斜角线的和 都相等

经验规则:

  • 从 1 开始按顺序逐个填写;
  • 1 放在第一行的中间位置;
  • 下一个数往右上 角 45 度处填写;
  • 如果单边越界则按头尾相接地填;
  • 如果有填写冲突,则填到刚才位置的底下一格;
  • 如果有两边越界,则填到刚才位置的底下一格。

认为,可以先把最中间的数填到九宫格的最中间位置;再按上面的规则逐个填写, 而且 填的时候还可以把头尾对应的数填到对应的格子中。(第 n 个值跟倒数第 n 个值 对应,格局上以最中 间格为轴心对应)

代码语言:javascript
复制
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();        }    }}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档