常用方法(注释已标注):
public class Test {
public static void main(String[] args) {
//获取绝对值
System.out.println(Math.abs(-8));
//获取绝对值(超出int范围二十一亿多会报错)
System.out.println(Math.absExact(1));
//向上取整
System.out.println(Math.ceil(1.1));
//向下取整
System.out.println(Math.floor(1.1));
//四舍五入
System.out.println(Math.round(1.3));
System.out.println(Math.round(1.8));
//获取最大值
System.out.println(Math.max(10, 20));
//获取最小值
System.out.println(Math.min(10, 20));
//获取a的b次幂
System.out.println(Math.pow(2, 3));
//开平方根
System.out.println(Math.sqrt(64));
//开立方根
System.out.println(Math.cbrt(64));
//获取[0.0, 1.0)之间的随机数
System.out.println(Math.random());
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/07f003da4f49ebc51a7544ee295aa337.png)
综合小练习:
自幂数:一个n位自然数等于自身各个数位上数字的n次幂之和,例如:
三位数:1^3 + 5^3 + 3^3 = 153 四位数:1^4 + 6^4 + 3^4 + 4^4 = 1634
要求:键盘输入要查询几位数中的自幂数个数,程序即输出结果。
例如:输入3,则会输出100~999的三位数中自幂数的个数
完整代码:
import java.util.ArrayList;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查询几位数的自幂数个数:");
double digit = sc.nextInt();
//定义一个集合存储自幂数
ArrayList<Integer> list = new ArrayList<>();
//定义一个变量存储自幂数个数
int count = 0;
for(double i = Math.pow(10, digit - 1); i <= Math.pow(10, digit) - 1; i++) {
//临时变量存储i的值
double temp = i;
//定义一个变量存储次幂的和
double sum = 0;
//分别获取每一位数并次幂运算后求和
for (int j = 0; j < digit; j++) {
double last = temp % 10;
sum = sum + Math.pow(last, digit);
temp = Math.floor(temp / 10);
}
//如果是自幂数就count++,并添加到集合里
if(sum == i) {
count++;
list.add((int)i);
}
}
//输出结果,并打印出所有自幂数
System.out.println("自幂数有:" + count + "个,分别为:");
for (int i = 0; i < list.size(); i++) {
if (i != list.size() - 1) {
System.out.print(list.get(i) + ", ");
} else {
System.out.print(list.get(i));
}
}
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/c951711784fe4f442f7b43ceaa9d5361.png)
![](https://i-blog.csdnimg.cn/blog_migrate/752ca77883503ae2bf75745e89982661.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6b86c7214664b4b50e8e4096d24d26d6.png)