目录
常用的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);
}
}