Java作业

简介: Java作业


题目:给一个不多于5位的正整数。要求:一、逆序打印出各位数字。二、求它是几位数。

import java.util.Scanner;

/**
 * @Auther: admin
 * @Date: 2022/10/4 15:01
 * @Description: 题目:给一个不多于5位的正整数。要求:一、逆序打印出各位数字。二、求它是几位数。
 */

public class Practice01 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个整数:");
        int number = scanner.nextInt();
        reversePrint(number);
        getDigits(number);
    }

    /**
     * 一、逆序打印出各位数字
     * 递归输出
     *
     * @param num
     */
    static void reversePrint(int num) {
        System.out.print(num % 10 + " ");
        if (num > 10) reversePrint(num / 10);
    }

    /**
     * 二、求它是几位数。
     * 利用log10函数 获取位数
     *
     * @param num
     */
    static void getDigits(int num) {
        System.out.println("你输入的是一个" + ((int) Math.log10(num) + 1) + "位数");
    }
}



题目:输出1000以内将一个正整数分解质因数

/**
 * @Auther: admin
 * @Date: 2022/10/4 15:01
 * @Description: 题目:输出1000以内将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
 */

public class Practice02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个1000以内的正整数:");
        int number = scanner.nextInt();
        decPriFactor(number);
    }

    static void decPriFactor(int num) {
        System.out.print(num + "=");
        ArrayList<String> strings = new ArrayList<>();
        for (int i = 2; i <= num;) {
            // 如果 为素数 且 能被整除
            if (isPrime(i) && num % i == 0) {
                // 转为String类型 添加到链表中
                strings.add(String.valueOf(i));
                num /= i;
                // 重置为 2
                i = 2;
            }else{
                i++;
            }
        }
        // join: 以 * 间隔 合并数组中的字符串
        String res = String.join("*", strings);
        System.out.println(res);
    }

    /**
     * 判断num是否为素数
     * @param num
     * @return
     */
    static boolean isPrime(int num) {
        for (int i = 2; i < num / 2; i++)
            if (num % i == 0) return false;
        return true;
    }
}



题目:从键盘输入一个整数(1~20),则以该数字为矩阵的大小,把1,2,3.n*n的数字按照顺时针螺旋的形式填入其中。


/**
 * @Auther: admin
 * @Date: 2022/10/4 15:26
 * @Description: 从键盘输入一个整数(1~20),则以该数字为矩阵的大小,
 * 把1,2,3...n*n 的数字按照顺时针螺旋的形式填入其中
 */

public class Practice03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个1~20之间的数字:");
        int n = scanner.nextInt();
        clockwise(n);
        counterclockwise(n);
    }

    /**
     * 顺时针
     * @param n
     */
    static void clockwise(int n) {
        int[][] res = new int[n][n];
        int k = 1;
        for (int i = 0, j; i <= n / 2; i++) {
            // top
            for (j = i; j < n - i; j++) {
                res[i][j] = k++;
            }
            // right
            for (j = i + 1; j < n - i; j++) {
                res[j][n - i - 1] = k++;
            }
            // bottom
            for (j = n - i - 2; j >= i; j--) {
                res[n - i - 1][j] = k++;
            }
            // left
            for (j = n - i - 2; j > i; j--) {
                res[j][i] = k++;
            }
        }
        print(res);
    }

    /**
     * 逆时针
     * @param n
     */
    static void counterclockwise(int n) {
        int[][] res = new int[n][n];
        int k = 1;
        for (int i = 0, j; i <= n / 2; i++) {
            // left
            for (j = i; j < n - i; j++) {
                res[j][i] = k++;
            }
            // bottom
            for (j = i + 1; j < n - i; j++) {
                res[n - i - 1][j] = k++;
            }
            // right
            for (j = n - i - 2; j > i; j--) {
                res[j][n - i - 1] = k++;
            }
            // top
            for (j = n - i - 1; j > i; j--) {
                res[i][j] = k++;
            }
        }
        print(res);
    }

    /**
     * 按格式打印二维数组 m
     *
     * @param m
     */
    static void print(int m[][]) {
        for (int i = 0; i < m.length; i++) {
            for (int j = 0; j < m[i].length; j++)
                System.out.printf("%4d", m[i][j]);
            System.out.println();
        }
    }
}



需求:我们现在有乒乓球运动员和篮球运动员,乒乓球教练和篮球教练。为了出国交流,跟乒乓球相关的人员都需要学习英语。请用所学知识分析,这个案例中有哪些具体类,哪些抽象类,哪些接口,并用代码实现。

链接

相关文章
|
6月前
|
Java
【java作业3——类的定义】复数,连续子数组,最大素数
🍒 1 定义复数类 作业内容: 定义一个复数类Complex(数据成员:a,b表示复数a+bi).并配以合适的方法完成复数对象的生成、复数的运算(加、减、乘除),然后做一个主类测试它。
50 0
|
6月前
|
Java 网络架构
Java面向对象开发作业
Java面向对象开发作业
74 0
|
监控 安全 Java
计算机机房作业管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
计算机机房作业管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
|
30天前
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
54 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
存储 Java 关系型数据库
0018Java程序设计-springboot智慧环卫养管作业平台1
0018Java程序设计-springboot智慧环卫养管作业平台
81 0
|
28天前
|
Java 编译器 Android开发
java作业的提交规范与要求
java作业的提交规范与要求
18 0
|
SQL Java 定位技术
0018Java程序设计-springboot智慧环卫养管作业平台2
0018Java程序设计-springboot智慧环卫养管作业平台
52 0
|
5月前
|
小程序 Java 数据库
基于Java作业管理系统设计和实现(源码+LW+调试文档+讲解等)
基于Java作业管理系统设计和实现(源码+LW+调试文档+讲解等)
|
6月前
|
JavaScript Java 测试技术
基于Java的作业管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的作业管理系统的设计与实现(源码+lw+部署文档+讲解等)
|
5月前
|
前端开发 JavaScript Java
计算机Java项目|基于springboot的课程作业管理系统
计算机Java项目|基于springboot的课程作业管理系统