Java的Math接口

Java的Math接口

1.Math类

1.1概述

Math类所在的包为java.lang包,因此在使用的时候不需要导包。并且Math类被final修饰了,因此该类是不能被继承的。Math类包含执行基本数学运算的方法,我们可以使用Math类完成基本的数学运算。

Math类中包含了两种类成员,一种为e,即自然对数的底数。另一种为PI,即圆周率的Π。

对于Math类,主要需要掌握以下常用方法

public static int abs(int a); //返回参数的绝对值;
public static double ceil(double a);//返回大于或等于参数的最小整数。
public static double floor(double a);//返回小于或等于参数的最大整数.
public static int round(float); //按照四舍五入返回最接近参数的int类型。

public static int max(int a,int b);//返回两个int值中的较大值。
public static int min(int a,int b);//返回两个int值中的较小值.
public static double pow(double a,double b);//计算a的b次幂的值.
public static double random(); //返回一个【0.0,1.0)的随机值
public static double sqrt(double a); //返回一个double类型的开平方数

代码演示示例

System.out.println("98的绝对值为"+Math.abs(98));
        System.out.println("-98的绝对值为"+Math.abs(-98));
    //向上取整
        System.out.println(Math.ceil(12.45));
        System.out.println(Math.ceil((-12.45)));
    //向下取整
        System.out.println(Math.floor(12.45));
        System.out.println(Math.floor(-12.45));
    //四舍五入
        System.out.println(Math.round(12.45));
        System.out.println(Math.round(-12.45));

        System.out.println(Math.max(15, 30));
        System.out.println(Math.min(15,30));

        System.out.println(Math.pow(2,4));
        System.out.println(Math.random()*100+1);//随机生成一个1-100之间的数。

        System.out.println(Math.sqrt(4));

代码结果如下

98的绝对值为98
-98的绝对值为98
13.0
-12.0
12.0
-13.0
12
-12
30
15
16.0
60.04682115156065
2.0

Process finished with exit code 0

1.2Math练习题

要求:判断一个数是否为质数

public class Test {
    public static void main(String[] args) {
        //判断一个数是否为质数.
        //质数是除了它和1以为,不能被任意一个数整除。
        System.out.println(isPrime(997));
    }

    public static boolean isPrime(int a) {
        int count=0;
        for (int i = 2; i <Math.sqrt(a) ; i++) {
            if(a%i==0){
                return false;
            }
        }
        return true;
    }
}

要求:自幂数,一个n位自然数等于自身各个数位上数字的n次幂之和

public class Test {
    public static void main(String[] args) {
        //要求:统计n位自然数等于自身各个数位上数字的n次幂之和
        int count=0;
        for (int i = 100; i <1000 ; i++) {
            int ge=i%10;
            int shi=i/10%10;
            int bai=i/100%10;
            if(Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3)==i){
                count++;
                System.out.println(i);
            }
        }
        System.out.println(count);
    }

}

要求:证明没有两位的自幂数

public class Test {
    public static void main(String[] args) {
        //要求:证明没有两位的自幂数
        int count=0;
        for (int i = 10; i <100 ; i++) {
            int ge =i%10;
            int shi=i/10%10;
            if(Math.pow(ge,2)+Math.pow(shi,2)==i)
                count++;
        }
        System.out.println(count);//输出结果为0
    }

}

要求:分别统计有多少个四叶玫瑰数和五角星数

public class Test {
    public static void main(String[] args) {
        //要求:统计四叶玫瑰数
        int count=0;
        for (int i = 1000; i <10000 ; i++) {
            int ge =i%10;
            int shi=i/10%10;
            int bai=i/100%10;
            int qian=i/1000%10;
            if(Math.pow(ge,4)+Math.pow(shi,4)+Math.pow(bai,4)+Math.pow(qian,4)==i)
                count++;
        }
        System.out.println(count);//结果为3个
    }
	
}

public class Test {
    public static void main(String[] args) {
        //要求:统计五角星数
        int count=0;
        for (int i = 10000; i <100000 ; i++) {
            int ge =i%10;
            int shi=i/10%10;
            int bai=i/100%10;
            int qian=i/1000%10;
            int wan=i/10000%10;
            if(Math.pow(ge,5)+Math.pow(shi,5)+Math.pow(bai,5)+Math.pow(qian,5)+Math.pow(wan,5)==i)
                count++;
        }
        System.out.println(count);//结果为3
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值