Math
说明:
Math是帮助我们进行数学计算的工具类。
里面的方法都是静态的,可以通过类名Math直接调用。
常用方法:
方法名 | 说明 |
public static int abs(int a) | 获取参数绝对值 |
public static double ceil(double a) | 向上取整 |
public static double floor(double a) | 向下取整 |
public static int round(float a) | 四舍五入 |
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 sqrt(double a) | 返回a的平方根 |
public static double cbrt(double a) | 返回a的立方根 |
public static double random( ) | 返回值为double的随机值,范围[0.0,1.0) |
代码演示:
public class Test {public static void main(String[] args) {//public static int abs(int a) 获取参数绝对值//public static double ceil(double a) 向上取整//public static double floor(double a) 向下取整//public static int round(float a) 四舍五入//public static int max(int a,int b) 获取两个int值中的较大值//public static double pow(double a,double b) 返回a的b次幂的值//public static double sqrt(double a) 返回a的平方根//public static double cbrt(double a) 返回a的立方根//public static double random( ) 返回值为double的随机值,范围[0.0,1.0)System.out.println(Math.abs(10));//10System.out.println(Math.abs(-10));//10System.out.println(Math.ceil(10.5));//11.0System.out.println(Math.ceil(-10.5));//-10.0System.out.println(Math.floor(10.5));//10.0System.out.println(Math.floor(-10.5));//-11.0System.out.println(Math.round(10.4));//10System.out.println(Math.round(10.5));//11System.out.println(Math.round(-10.4));//-10System.out.println(Math.round(-10.5));//-10System.out.println(Math.round(-10.6));//-11System.out.println(Math.pow(2,3));//8.0System.out.println(Math.pow(4,0.5));//2.0System.out.println(Math.pow(2,-2));//0.25System.out.println(Math.sqrt(4));//2.0System.out.println(Math.cbrt(8));//2.0System.out.println(Math.random());//0.3164356899167895}
}
练习:
自幂数,一个n位自然数等于自身每一位上数字的n次幂的和
举例1:三位数 1^3+5^3 +3^3 = 153
举例2:四位数 1^4 +6^4 +3^4 +4^3 = 1634
自幂数是一位数,也叫做:独身数
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
要求1:统计一共有多少个水仙花数。
要求2:证明没有两位的自幂数。
要求3:分别统计有多少个四叶玫瑰数和五角星数。(答案:都是3个)
public class Test2 {public static void main(String[] args) {//定义计数器int count = 0;//统计一共有多少个水仙花数。for (int i = 100; i < 999; i++) {//调用方法获得3位自然数每一位上数字的3次幂的和int sum = getNumber(i, 3);//365if (sum == i) {//System.out.println(i);count++;}}System.out.println(count);//4//证明没有两位的自幂数//计数器归0count = 0;for (int i = 10; i < 99; i++) {//调用方法获得2位自然数每一位上数字的2次幂的和int sum = getNumber(i, 2);if (sum == i) {//System.out.println(i);count++;}}System.out.println(count);//0//统计有多少个四叶玫瑰数//计数器归0count = 0;for (int i = 1000; i < 9999; i++) {//调用方法获得4位自然数每一位上数字的4次幂的和int sum = getNumber(i, 4);if (sum == i) {//System.out.println(i);count++;}}System.out.println(count);//3//统计有多少个五角星数//计数器归0count = 0;for (int i = 10000; i < 99999; i++) {//调用方法获得5位自然数每一位上数字的5次幂的和int sum = getNumber(i, 5);if (sum == i) {//System.out.println(i);count++;}}System.out.println(count);//3}//定义方法计算2位自然数每一位上数字的2次幂的和public static int getNumber(int n, int m) {int sum = 0;while (n != 0) {int num = n % 10;sum = (int) (sum + Math.pow(num, m));n = n / 10;}return sum;}
}
System
说明:
System提供了一些与系统相关的方法
里面的方法都是静态的,可以通过类名System直接调用。
常用方法:
方法名 | 说明 |
public static void exit (int status) | 终止当前运行的 Java 虚拟机 |
public static long currentTimeMillis () | 返回当前系统的时间毫秒值形式 |
public static void arraycopy (数据源数组,起始索引,目的地数组,起始索引,拷贝个数) | 数组拷贝 |
代码演示:
public class Test3 {public static void main(String[] args) {//public static void exit (int status) 终止当前运行的 Java 虚拟机//public static long currentTimeMillis () 返回当前系统的时间毫秒值形式//public static void arraycopy (数据源数组,起始索引,目的地数组,起始索引,拷贝个数) 数组拷贝//在一段代码的前面和后面分别获取当前系统的时间,其差值可以看作这段代码运行的耗时long time1 = System.currentTimeMillis();int sum = 0;for (int i = 0; i < 1000000000; i++) {sum = sum + i;}long time2 = System.currentTimeMillis();System.out.println(time2 - time1);//540 单位是毫秒int[] arr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int[] arr2 = new int[10];System.arraycopy(arr1, 0, arr2, 0, 10);for (int i = 0; i < arr2.length; i++) {System.out.print(arr2[i] + " ");}//1 2 3 4 5 6 7 8 9 10 System.exit(0);//0 正常停止,非0 异常停止}
}