那些年,我们一起做过的 Java 课后练习题(71 - 75)

2022-06-15 11:22:38 浏览数 (2)

实例 71

题目

假如我国国民生产总值的年增长率为 10%,则 n 年后我国国民生产总值与现在相比增长多少百分比?

分析

计算公式:

p = (1 r)^n

其中 r 为年增长率,n 为年数,p 为与现在相比的倍数。

实现

代码语言:javascript复制
import java.util.Scanner;

import static java.lang.Math.pow;

/**
 * Created with IntelliJ IDEA.
 *
 * @Package : PACKAGE_NAME
 * @ClassName : Example71.java
 * @CreateTime : 2022/4/1 23:11
 * @Version : 1.0
 * @Author : 村雨
 * @Email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @Website : https://cunyu1943.github.io
 * @Description :
 */
public class Example71 {
    public static final double R = 0.1;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年数");
        int n = scanner.nextInt();
        System.out.format("%d 年后相比现在增长了:%.2f 倍n", n, pow(1   R, n));
    }
}

结果

实例 72

题目

假设你有 1000 元,想要存 5 年,可以按照以下 5 种存法:

  • 一次存 5 年
  • 先存 2 年,到期后将本息再存 3 年
  • 先存 3 年,到期后将本息再存 2 年
  • 先存 1 年,到期后将本息再存 1 年,连续存 5 年
  • 存活期,活期利息每季度结算一次

某年的某银行存款利息如下:

  • 1 年期定期:4.14%
  • 2 年期定期:4.68%
  • 3 年期定期:5.4%
  • 5 年期定期:5.85%
  • 活期:0.72%

分析

假设 r 为年利率,n 为存款年数,则计算本息和的公式为:

1 年期:

p=1000*(1 r)

n 年期:

p==1000*(1 n*r)

存 n 次 1 年期:

p = 1000*(1 r)^n

活期存款:

p=1000*(1 r/4)^{4n}

实现

代码语言:javascript复制
import java.util.Scanner;

import static java.lang.Math.pow;

/**
 * Created with IntelliJ IDEA.
 *
 * @Package : PACKAGE_NAME
 * @ClassName : Example71.java
 * @CreateTime : 2022/4/1 23:12
 * @Version : 1.0
 * @Author : 村雨
 * @Email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @Website : https://cunyu1943.github.io
 * @Description :
 */
public class Example72 {
    public static final double R0 = 0.0072;
    public static final double R1 = 0.0414;
    public static final double R2 = 0.0468;
    public static final double R3 = 0.054;
    public static final double R5 = 0.0585;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入本金");
        float p = scanner.nextFloat();


        System.out.format("一次存 5 年:%.2fn", p * (1   R5 * 5));
        System.out.format("先存 2 年,到期后本息存 3 年:%.2fn", p * (1   2 * R2) * (1   3 * R3));
        System.out.format("先存 3 年,到期后本息存 2 年:%.2fn", p * (1   2 * R2) * (1   3 * R3));
        System.out.format("存 1 年期,到期后本息再存,连续存 5 年:%.2fn", p * pow(1   R1, 5));
        System.out.format("存活期:%.2fn", p * pow(1   R0 / 4, 4 * 5));

    }
}

结果

实例 73

题目

设圆半径 r,圆柱高 h,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

分析

对应求值公式:

  • 圆周长:
2πr
  • 圆面积:
πr^2
  • 圆球表面积:
4πr^2
  • 圆球体积:
4πr^3/3
  • 圆柱体积:
πr^2h

实现

代码语言:javascript复制
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 *
 * @Package : PACKAGE_NAME
 * @ClassName : Example73.java
 * @CreateTime : 2022/4/1 23:12
 * @Version : 1.0
 * @Author : 村雨
 * @Email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @Website : https://cunyu1943.github.io
 * @Description :
 */
public class Example73 {
    public static final double PI = 3.141526;

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入圆半径 r,圆柱高 h");
        float r = scanner.nextFloat();
        float h = scanner.nextFloat();
        System.out.format("圆周长:%.2fn", 2 * PI * r);
        System.out.format("圆面积:%.2fn", PI * r * r);
        System.out.format("圆球表面积:%.2fn", 4 * PI * r * r);
        System.out.format("圆球体积:%.2fn", 4 / 3 * PI * r * r * r);
        System.out.format("圆柱体积:%.2fn", h * PI * r * r);
    }
}

结果

实例 74

题目

有一个函数:

y=begin{cases}x,x<1\2x-1,1<=x<10\3x-11,x>=10end{cases}

分析

实现

代码语言:javascript复制
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 *
 * @Package : PACKAGE_NAME
 * @ClassName : Example74.java
 * @CreateTime : 2022/4/1 23:12
 * @Version : 1.0
 * @Author : 村雨
 * @Email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @Website : https://cunyu1943.github.io
 * @Description :
 */
public class Example74 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入 x");
        int x = scanner.nextInt();
        if (x < 1) {
            System.out.format("x = %d,y = %dn", x, x);
        } else if (x < 10) {
            System.out.format("x = %d,y = %dn", x, 2 * x - 1);
        } else {
            System.out.format("x = %d,y = %dn", x, 3 * x - 11);
        }

    }
}

结果

实例 75

题目

给出 100 分制成绩,要求输出成绩等级 A、B、C、D、E。90 以上为 A,80 ~ 89 为 B,70 ~ 79 为 C,60 ~ 69 为 D,60 以下为 E。

分析

既可以通过对分数的所属区间判断,也可以利用分数先整除 10,然后对得到的商进行判断,输出成绩的对应等级。

实现

代码语言:javascript复制
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 *
 * @Package : PACKAGE_NAME
 * @ClassName : Example75.java
 * @CreateTime : 2022/4/1 23:13
 * @Version : 1.0
 * @Author : 村雨
 * @Email : 747731461@qq.com
 * @公众号 : 村雨遥
 * @Website : https://cunyu1943.github.io
 * @Description :
 */
public class Example75 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char grade = 'A';
        System.out.println("请输入学生成绩");
        int score = scanner.nextInt();
        while (score < 0 || score > 100) {
            System.out.println("输入有误,请重新输入");
            score = scanner.nextInt();
        }
        switch (score / 10) {
            case 10:
            case 9:
                grade = 'A';
                break;
            case 8:
                grade = 'B';
                break;
            case 7:
                grade = 'C';
                break;
            case 6:
                grade = 'D';
                break;
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
            case 0:
                grade = 'E';
                break;
        }
        System.out.format("成绩为:%d,相应等级为:%c", score, grade);
    }
}

结果

最后

关于本文的代码,我已经上传到了开源平台,有需要的读者可以自取。

0 人点赞