java. util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作。
/*
public static double abs ( double num):获取绝对值。有多种重载。
public static double ceil (double num):向上取整。
public static double floor( double num):向下取整。
public static long round( double num):四舍五入。
*/
public class Dir01 {
public static void main(String[] args) {
//获取别绝对值Math.abs
System.out.println(Math.abs(3.14));
System.out.println(Math.abs(-3.14));
System.out.println("-----------------------");
//向上取整
System.out.println(Math.ceil(45.6));//46
System.out.println(Math.ceil(45.1));//46
System.out.println("-----------------------");
//向下取整
System.out.println(Math.floor(5.9));
System.out.println(Math.floor(5.1));
System.out.println("-----------------------");
//四舍五入
System.out.println(Math.round(56.6));
System.out.println(Math.round(56.4));
System.out.println(Math.PI);//π
}
}
练习
//计算-10.8到5.9之间,绝对值大于6或者小于2.1的整数有多少个
/*
* 分析
* 1.既然已经确定范围,就有for循环
* 2.起点位置-10.8经过转换为-10,两种办法
* 2.1可以使用Math.ceil方法,向上(正方向)取整
* 2.2强转成为int,自动舍弃所有小数位
* 3.每一个数字都是整数,所以步进表达式应该是num++,这样每次都是+1的
* 4.如何拿到绝对值,Math.abs方法
* 5.一旦发现了一个数字,需要让计数器++进行统计
*
* 备注:如果使用Math.ceil方法,-10.8可以变成-10.0。注意double也是可以进行++的。
* */
public class Dir02 {
public static void main(String[] args) {
double min=-10.8;
double max=5.9;
int count =0;
for (int i=(int)min;i
int qq=Math.abs(i);//绝对值
if (qq>6 || qq<2.1){
System.out.println(i);
count++;
}
}
System.out.println("有"+count+"个");
}
// public static void main(String[] args) {
// double min=-10.8;
// double max=5.9;
// int count =0;
// double ww=Math.ceil(min);
// for (double i=min;i
// double qq=Math.abs(i);//绝对值
// if (qq>6 || qq<2.1){
// System.out.println(i);
// count++;
// }
// }
// System.out.println("有"+count+"个");
// }
}
java. util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作。 相关文章
魔改森林 题解(dp+容斥+组合数学)
题目链接 题目大意 给你一个n*m的方格图,中间有k个障碍,要你求从左下角到右上角有多少种方案mod 998244353 题目思路 这个题目真是很oi...... 首先\(max(n,m)=1e3\) 直接\(O(N^2)dp\) 如果方格数量很多,观察障碍物很少,则可以想到容斥的思维 然后再用组合
java.lang.IllegalStateException: Failed to load ApplicationContext by: org.springframework.beans.fac
Springboot启动报错 java.lang.IllegalStateException: Failed to load ApplicationContextat org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132)at org.springf
stone (组合数学 + Lucas定理)
传送门 解题思路:第i组的人数必须大于Ci,于是我们可以将问题转化为\(N-\sum_{i=1}^M Ci\)人分到M组中,且保证每一组的人数大于0,然后我们可以使用隔板法求出分的的组数\(C_{N-1-\sum_{i=1}^M Ci}^{m-1}\) 我们可以直接通过基本的组合公式+费马小定理直接求
120. 防线
原题链接:120. 防线 达达学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天......受尽屈辱的达达黑化成为了黑暗英雄怪兽达达。 就如同中二漫画的情节一样,怪兽达达打算毁掉这个世界。 数学竞赛界的精英 lqr 打算阻止怪兽达达的阴谋,于是她集合了一支由数
慎用subList:ArrayList$SubList.add导致的java.lang.StackOverflowError
原文链接:http://www.voidcn.com/article/p-hsjkhemr-dh.html 转载为了记录 最近定位项目实际上线后遇到的1个StackOverflowError问题,这里做个分析。通过日志文件可以看到: java.lang.StackOverflowErrorat java.util.ArrayList$SubList.add(ArrayList.ja
Traveling in the Grid World 暴力+数学
Traveling in the Grid World 暴力+数学 题目大意: 开始位于\((0,0)\),最后要到达 \((n,m)\) ,如果你要从 \((sx,sy)\) 走到 \((gx,gy)\) 那么连接起点和终点,连线不能穿过任意的网格点,这样的一条连线被称为一条路径,要求不能存在任意两条路的斜率相同
LeetCode中级算法-数学(1)
快乐数 [题目] 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐
LeetCode中级算法-数学(2)
Pow(x, n) [题目] 实现 pow(x, n) ,即计算 x 的 n 次幂函数。 [输入1] 2.00000, 10 [返回1] 1024.00000 [输入2] 2.10000, 3 [返回2] 9.26100 [输入3] 2.00000, -2 [返回3] 0.25000 [解法] 无 [代码实现] package mainimport fmtfunc main() { input := floa
【10.30 校内普及组】【二分】【数学】 有趣的水管 题解
【10.30 校内普及组】【二分】【数学】 有趣的水管 题解 【10.30 校内普及组】【二分】【数学】 有趣的水管 题解 题目 解题思路 暴力 一开始想暴力 从输出口为k的倒序累加到2 如果累加和大于n 退出输出个数 很明显,会超时 二分 二分求mid为分离器的个数 假设