JAVA API Math的常用方法和质数判定、水仙花数的寻找的例题

目录

常用的Math方法

获取绝对值

向上取整

向下取整

四舍五入

获得max两个数中的最大值

求a的b次幂

产生随机数范围【0.0,1.0)

质数的判定

水仙花数


常用的Math方法

获取绝对值

public static int abs (int a)

注意有可能出现的bug

int的取值范围是-2147483648~2147483647

-2147483648没有与之对应,所以会出现bug

在使用abs时要注意其输入的数值大小;以防出现bug

向上取整

public static double ceil(double a)

向上取整是采用进一法,即沿着数轴进行进一的。

向下取整

public static double floor(double a )

 向下取整是采用去尾法,即沿着数轴的负方向去经行延伸

四舍五入

public static int round (float a)
四舍五入法是与数学运算中的四舍五入类似

获得max两个数中的最大值

public static int max (int a,int b)

求a的b次幂

public static double pow (double a,double b)
细节
 如果第二个参数0~1之间的小数
 System.out.println(Math.pow(4,0.5));输出:2.0
 System.out.println(Math.pow(2,-2));输出:0.25
 建议
 第二个参数:一般传递大于等于1的正整数

产生随机数范围【0.0,1.0)

public static double random()
获取十个随机数
产生一个【0.0,1.0)的随机数
for (int i=0;i<10;i++) {
    System.out.println(Math.random());
}
//如果想要获得其他的随机数可以参考以下的生成方法
//通常在与前端做信息交互的时候,多数也是采用这种书写方式
for (int i=0;i<10;i++) {
    System.out.println(Math.floor((Math.random()*100)+1));
    //Math.random() 生成【0.0,1.0)
    //*100          【0.0,100.0)
    //floor         去掉了后面的小数
    //+1            【1,100)
}

质数的判定

public class MathTeat01 {
    public static void main(String[] args) {
        System.out.println(isPrime(997));
    }


    public static boolean isPrime(int number) {
        int count = 0;
        for (int i = 2; i <= Math.sqrt(number); i++) {
            // Math.sqrt(开平方,可以优化算法)
            //按照常规的从i=2开始循环到number,到优化后的只用求其开根号数。可以大大的优化运行效率
            count++;
            if (number%i==0){
                return false;
            }
        }
        System.out.println(count);
        return true;
    }

水仙花数

什么是水仙花数:

自幂数:

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

举例1:三位数  1^3+5^3+3^3=153

举例2:四位数 1^4+6^4+3^4+4^4=1634

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

三位自幂数:水仙花数                 四位自幂数:四叶玫瑰数

五位自幂数:五角星数                 六位自幂数:六合数

七位自幂数:北斗七星数              八位自幂数:八仙数

九位自幂数:九九重阳数             十位自幂数:十全十美数

  下面主要举例水仙花数的求法,其它的可以以此类推:

   

public class MathTeat02 {
    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);
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值