• Java 入门练习(11 - 15)


    JAVA11 求最小公倍数

    描述

    编写一个方法,该方法的返回值是两个不大于 100 的正整数的最小公倍数

    输入描述

    两个 int 类型变量作为方法的参数

    输出描述

    int 类型的变量,值为两个数的最小公倍数

    示例1

    输入:

    3 7
    
    • 1

    输出:

    21
    
    • 1

    解答

    要求两个数的最小公倍数,那么这个数至少应该是两个数中大的那个数,所以需要先求出两个树中大的那个,可以利用 Math 包中提供的 max() 方法。此外,如果两个数互质,那么这两个数的最小公倍数就是它们的积。然后在这个区间中循环,用区间中的数去除以 mn,如果存在一个数能同时整除 mn,那么这个数就是它俩的最小公倍数。

    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            Scanner console = new Scanner(System.in);
            int m = console.nextInt();
            int n = console.nextInt();
            int result = getCM(m, n);
            System.out.println(result);
        }
    
        public static int getCM(int m, int n) {
            int max = Math.max(m, n);
            for (int i = max; i <= m * n; i++) {
                if (i % m == 0 && i % n == 0) {
                    return i;
                }
            }
            return -1;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    JAVA12 小球走过路程计算

    描述

    一球从h米高度自由落下,每次落地后反弹回原高度的一半再落下,求它在第 n 次落地时共经过了多少米?第 n 次反弹多高?

    输入描述

    输入小球的初始高度和落地的次数(先输入小球初始高度再输入反弹次数)

    输出描述

    输出小球反弹的高度和经过的距离(先输出反弹的高度再输出经过的距离,中间用空格隔开)

    示例1

    输入:

    100 3
    
    • 1

    输出:

    12.500 250.000
    
    • 1

    备注:

    结果保留三位小数,保留方式已经写在预设方法备注中
    
    • 1

    解答

    要经过 n 此落地,所以需要循环 n 次,在每次循环的时候,需要将下落的高度和回弹的高度相加。需要注意的点,第 n 次下落不需要计算回弹的距离了。

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            float h = scanner.nextFloat();
            int n = scanner.nextInt();
    
            float dis = 0;
            for (int i = 0; i < n; i++) {
                //每次加上落下来的距离
                dis += h;
                //弹起距离缩短一半
                h /= 2;
                if (i == n - 1) {
                    System.out.println(String.format("%.3f", h) + " " + String.format("%.3f", dis));
                }
                //反弹上去的距离
                dis += h;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    JAVA13 求平均数

    描述

    键盘输入任意多个 10000 以内正整数(负数代表结束),求出它们的平均数,

    输入描述

    任意多个正整数

    输出描述

    它们的平均数(平均数为 double 类型,保留两位小数)

    示例1

    输入:

    12 23 32 43 -1
    
    • 1

    输出:

    27.50
    
    • 1

    解答

    分别创建三个变量来表示输入的数和 sum、平均值 avg 以及个数 count,当遇到输入的值是负数时,就终止循环,然后计算出其平均值 sum / count

    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            double avg = 0;
            int count = 0;
            double sum = 0;
            while (scan.hasNext()) {
                int num = scan.nextInt();
                // 输入的数大于 0 时,求和并计数
                if (num > 0) {
                    sum += num;
                    count++;
                } else {
                    break;
                }
            }
            // 求平均值
            avg = sum / count;
            System.out.println(String.format("%.2f", avg));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    JAVA14 判断质数

    描述

    请补全预设代码中判断质数的方法。

    输入描述

    一个大于1的整数

    输出描述

    true/false

    示例1

    输入:

    2
    
    • 1

    输出:

    true
    
    • 1

    示例2

    输入:

    9
    
    • 1

    输出:

    false
    
    • 1

    解答

    要判断一个数是否是质数,那么用它来除以 2 ~ number / 2 之间的数,如果存在一个数能被 number 整除,那么就说明这个数不是质数。

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Main main = new Main();
            Scanner scan = new Scanner(System.in);
            int number = scan.nextInt();
            System.out.println(main.isPrimeNumber(number));
        }
    
        public Boolean isPrimeNumber(int number) {
            Boolean flag = true;
            for (int i = 2; i <= number / 2 ; i++) {
                if (number % i == 0) {
                    flag = false;
                }
            }
            return flag;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    JAVA15 计算整数位数

    描述

    输入一个整数,计算它的位数。如果输入的整数不大于 0 则输出这个数

    输入描述

    一个整数

    输出描述

    整数的位数

    示例 1

    输入:

    9999
    
    • 1

    输出:

    4
    
    • 1

    示例2

    输入:

    0
    
    • 1

    输出:

    0
    
    • 1

    示例3

    输入:

    -1
    
    • 1

    输出:

    -1
    
    • 1

    解答

    如果输入的数是非正数,那么就直接输出这个数。如果这个数是正数,那么就将其转换为字符串,然后利用 length() 方法求出其位数即可。

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int num = scan.nextInt();
            scan.close();
    
            if (num <= 0) {
                System.out.println(num);
            }
            System.out.println(Integer.toString(num).length());
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    【简单】 猿人学web第一届 第3题 罗生门
    lightdb 普通用户拥有XMLTYPE类型的访问权限
    C++中std::enable_if和SFINAE介绍
    Django笔记三十八之发送邮件
    在 CentOS 8 上为Apache HTTPD 配置 HTTPS
    第二章 进程与线程 十五、互斥锁
    【什么是闭包? 闭包产生的原因? 闭包有哪些表现形式?】
    个人设计和公司设计,哪个更适合你?
    整合SSM(Mybatis-Spring-SpringMVC层)
    数据结构-红黑树
  • 原文地址:https://blog.csdn.net/github_39655029/article/details/125492927