学习-Java顺序结构之数学函数之求两数最大者

第1关:学习-Java顺序结构之数学函数之求两数最大者

任务描述

本关任务:获取键盘两次输入的值,输入两者中的最大数。

相关知识

Java 的 Math 类中提供了的方法可以很方便的实现本关任务。

下面我们来介绍几个 Math 类中常用的方法。 #####Math 类

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如平方、对数、平方根和三角函数等。下表为 Math 类的一些常用方法。

方法描述
abs(x)返回参数x的绝对值,不改变x的数据类型
sqrt(x)计算x的平方根,返回值为 double
cbrt(x)计算x的立方根,返回值为 double
floor(x)返回小于x的最大整数,返回类型为 double
ceil(x)返回大于等于x的的最小整数,返回类型为 double
round(x)将x四舍五入取整,返回值为 long
pow(x,y)计算x的y次方,返回类型为 double
max(x,y)计算x和y的最大值,返回类型为 double
min(x,y)计算x和y的最小值,返回类型为 double
sin(x)求x的正弦值
cos(x)求x的余弦值
tan(x)求x的正切值
asin(x)求x的反正弦值
acos(x)求x的反余弦值
atan(x)求x的发正切值
toDegrees(x)将x转化为角度
toRadians(x)将x转换为弧度
PIπ

接下来为大家详细介绍该类的一些常用方法。

立方根

在之前的实训中我们知道了求平方根的方法,现在我们来讲解求立方根的方法。

例子:求 327​ 的值。

Math.cbrt(x)可以求取立方根的结果,x 既可以是整型也可以是浮点型。

 
  1. int a = 27;
  2. double cbrt = Math.cbrt(a);
  3. System.out.print(cbrt);

执行结果:

 
  1. 3.0
绝对值

例子:求 ∣−3.5∣ 的值。

Math.abs(x)可以求取 x 的绝对值,x 既可以是整型也可以是浮点型。

 
  1. double a = -3.5;
  2. double abs = Math.abs(a);
  3. System.out.print(abs);

执行结果:

 
  1. 3.5
取整

Math.ceil(x)Math.floor(x)Math.round(x)都可以求取 x 的整数,x 既可以是整型也可以是浮点型,不过它们取整的方式不同。

Math.ceil(x)返回大于等于给定参数的的最小整数。

 
  1. double a = 3.8;
  2. double b = 3.1;
  3. double ceil1 = Math.ceil(a);
  4. double ceil2 = Math.ceil(b);
  5. System.out.println(ceil1);
  6. System.out.print(ceil2);

执行结果:

 
  1. 4.0
  2. 4.0

Math.floor(x)返回小于目标函数的最大整数。

 
  1. double a = 3.8;
  2. double b = 3.1;
  3. double floor1 = Math.floor(a);
  4. double floor2 = Math.floor(b);
  5. System.out.println(floor1);
  6. System.out.print(floor2);

执行结果:

 
  1. 3.0
  2. 3.0

Math.round(x)四舍五入取整。

 
  1. double a = 3.8;
  2. double b = 3.1;
  3. long round1 = Math.round(a);
  4. long round2 = Math.round(b);
  5. System.out.println(round1);
  6. System.out.print(round2);

执行结果:

 
  1. 4
  2. 3
比较大小

Math.max(x,y)Math.min(x,y)都可以比较 x 和 y 的大小,x、y 既可以是整型也可以是浮点型,不过它们一个返回最大值,一个返回最小值。

 
  1. double a = 3.8;
  2. double b = 3.1;
  3. double max = Math.max(a,b);
  4. double min = Math.min(a,b);
  5. System.out.println(max);
  6. System.out.print(min);

执行结果:

 
  1. 3.8
  2. 3.1
三角函数

例子:

 
  1. double a = 30;// 定义一个变量a,用来表示角度为30°
  2. // Math.toRadians可以将角度转化为弧度。也就是将30度转化为π/6。
  3. double b = Math.toRadians(a);// 定义一个变量b,用来表示弧度。
  4. // Math.sin 可以算出该弧度对应的正弦值。
  5. double sin = Math.sin(b)
  6. System.out.print(sin);

执行结果:0.49999999999999994

然而结果并不是我们所熟知的 0.5,这是为什么呢?

 
  1. // 输出 Math 类中π的值
  2. System.out.print(Math.PI);

执行结果:3.141592653589793

可以看出 Math 类中 π 的值是精简后的,而前面的30°转化为6π​的值也会有所不同,所以得出的结果有误差。

那根据正弦值又怎么得出它的角度呢?

 
  1. // Math.asin可以将正弦值转化为反正弦值,这里的 sin 采用上面这个例子求出的sin值。
  2. double asin = Math.asin(sin);
  3. // Math.toDegrees可以将其转化为角度
  4. double d=Math.toDegrees(asin);
  5. System.out.println(d);

执行结果:29.999999999999996

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

注意:给定的两个数都为 double 类型。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。


开始你的任务吧,祝你成功!

源代码:

/**

 * 任务:获取键盘两次输入的值,输出两者中的最大数。

 * 类名为:CompareMax

 */

import java.util.Scanner;

public class CompareMax {

    public static void main(String[] args) {

   

        Scanner reader = new Scanner(System.in);

       

        // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码

        /********** Begin **********/

        // 第一步:获取键盘第一次输入的值

        double a=reader.nextDouble();

        // 第二步:获取键盘第二次输入的值

        double b=reader.nextDouble();

        // 第三步:比较两数大小

        double d=Math.max(a,b);

        // 第四步:不换行输出最大的那个值

        System.out.print(d);

        /********** End **********/


 

    }

}


 

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值