数学方法:
java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在
一般在调用其中的方法时 写法往往是 Math. 之后会弹出方法
建立在方法记得住的前提下:
可这样写:
和import Java.util.Scanner; 不一样
涉及 四舍五入, 随机数,开方,次方,π,自然常数 这些数学常用知识。
以上图中举例为常用
其中round E PI 之前没见过
寻找一千万中的质数个数问题:
质数概念: 只能被1和自己整除的数
图中的sqrt是建立在有import static java.lang.Math.*;声明才直接写的方法名
值得注意的细节:
1、图中的j<=sqrt(i);若改成j<i; 编译器不会报错 但是会运行很久 因为一千万太大 时间复杂度就会上升。所以一般会开方 这样降低时间复杂度
2、开始写的时候在内循环直接if else 套入 结果忽略了逻辑合理性。应该使用布尔值 (boolean) 判断标识flag 便于计算其个数。
格式化输出:
这一部分的学习就有点像 学c的时候学习的输入输出
1、如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐
使用格式化输出,就可以简洁明了
%s 表示字符串
%d 表示数字
%n 表示换行(一般用这个就可以了 Java的跨平台性)
其输出格式和c相差无几 值得注意的是 System.out.println改成System.out.printf 或 System.out.format
2、printf和format能够达到一模一样的效果
如果想要 右对齐或左对齐 实现保留几位小数这种格式要求怎么办?
总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达
其中本地化表达需要声明:import java.util.Locale;
总体上 部分和c学习的相差无几