常用API

目录

一.Math

二.两道算法水题

(一)判断一个数是否为一个质数

(二)统计一共有多少个水仙花数

三.System


一.Math

前面有final修饰,意思是这个类是一个最终类,不能被继承;

Math类包含用于执行基本数学运算的方法,初等函数的对数等;

大部分数学计算都可以用Math里面的方法,不需要创建对象,直接调用;

Math类的常用方法:

public static intabs(int a)获取参数绝对值
public static doubleceil(double a)向上取整
public static double floor(double a)向下取整
public static intround(float a)四舍五入
public static intmax(int a,int b)获取两个int值中的较大值
public static doublepow(double a,double b)返回a的b次幂的值
publia static doublerandom()返回值为double的随机值,范围[0,0,1,0)

import java.util.function.DoubleToIntFunction;

public class MathDemo1 {
    public static void main(String[] args) {
        //abs 获取参数的绝对值;
       System.out.println(Math.abs(-11));
       System.out.println(Math.abs(11));
       //有个bug:int类型范围:-21477483648~2147483647
        //如果没有正数和负数对应,那么传递负数的结果有误;

        //进一法:往数轴正方向进一;
        System.out.println(Math.ceil(14.56));
        //去尾法:向负无穷大方向获取整数;
        System.out.println(Math.floor(13.35));
        //四舍五入:
        System.out.println(Math.round(12.13));
        //获取两个整数的较大值;
        System.out.println(Math.max(20, 30));
        //获取两个整数的较小值;
        System.out.println(Math.min(20, 30));
        //获取a的b次幂;
        System.out.println(Math.pow(2, 3));//8
        //细节:如果第二个参数为0-1之间的小数;
        System.out.println(Math.pow(4, 0.5));//2.0

        //开平方根
        System.out.println(Math.sqrt(4));//2.0
        //开立方根
        System.out.println(Math.cbrt(8));//2.0
    }
}

二.两道算法水题

(一)判断一个数是否为一个质数

public class MathDemo2 {
    public static void main(String[] args) {

        //判断一个数是否为一个质数;
        System.out.println(isPrime(13));
        System.out.println(isPrime(10));
    }

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

    }
}

(二)统计一共有多少个水仙花数

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

如果自幂数是一位数,也叫做独身数;

三位自幂数:水仙花数;

四位自幂数:四叶玫瑰数;

要求1:统计一共有多少个水仙花数。

public class MathDemo3 {
    public static void main(String[] args) {
        //一共有多少个水仙花数;
        //水仙花数:100~999;
        int count=0;
        for (int i = 100; i < 999; i++) {
            int ge=i%10;
            int shi=i/10%10;
            int bai=i/100%10;

            //和每一位的三次方之和和本身进行比较;
            double sum=Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(bai,3);
            if(sum==i){
                count++;
                System.out.println(i);

            }
        }
        System.out.println(count);

    }
}

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

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

三.System

1.System也是一个工具类,提供了一些与系统相关的方法。

public static void exit(int status)终止当前运行的Java虚拟机
public static long currentTimeMillis()返回当前系统的时间毫秒值形式
public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)数组拷贝

2.时间原点:1970年1月1日0:0:0,我国在东八区,有八小时时差。

public class SystemDemo1 {
    public static void main(String[] args) {
        int[] arr1={1,2,3,4,5,6,7,8,9,10};
        int[] arr2=new int[10];
        //把arr1数组中的数据拷贝到arr2中来
        //参数一:数据源,要拷贝的数据从哪个数组而来
        //参数二:从数据源数组中的第几个索引开始拷贝
        //参数三:目的地,我要把数据拷贝到哪个数组中;
        //参数四:目的地数组的索引
        //参数五:拷贝的个数;
        System.arraycopy(arr1,0,arr2,0,10);
        //验证
        for (int i = 0; i < arr2.length;i++) {
            System.out.print(arr2[i]+"");
            
        }
    }
}

3.常见方法:

exit:停止虚拟机;

currentTimeMillis:获取当前时间的毫秒值;

arraycopy:拷贝数组;

4.细节:

1.如果数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错。

2.在拷贝的时候需要考虑数组的长度,如果超出范围也会报错。

3.如果数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值