课后整理总结
上次课堂内容及测试的整理总结。
动手动脑问题:
1.编写一个方法,使用算法生成指定数目(比如1000个)的随机整数。
结果(确实是1000个但是太长了显不出了):
课上作业的重点摘要:
1.判重问题
实现代码如下:
首先我们使用ArrayList集合来存储每道题的字符串,定义如下:
static ArrayList<String> eq = new ArrayList<>();
使用 .equals()可以比较内外两个字符串是否相同,即可完成判重操作。
使用循环从i=0到.size()即其长度。若无相同则将其写入数组。
2.浮点数精确运算与超大整数运算
浮点数无法精确表示数据。由于需要使用二进制来表述十进制,导致浮点数的实际数据并不是精确的,
因此,在商业计算中,不能使用浮点数来表示数据。这时候就需要实现浮点数精确运算。此时,就需要
BigDecimal出马。
JAVA中的BigDecimal提供了对于小数的精确运算。想要使用它,首先要在代码开头加入
import java.math.BigDecimal;
创建其对象BigDecimal bigDecimal = new BigDecimal(xxx);
在使用BigDecimal时,要注意,由于BigDecimal创建的是对象,因此在计算BigDecimal类型的数据时,
不能使用传统的"+-"等运算符号,而需要调用其方法:
add(BigDecimal) BigDecimal对象中的值相加,返回这个对象。
subtract(BigDecimal) BigDecimal对象中的值相减,返回这个对象。
multiply(BigDecimal) BigDecimal对象中的值相乘,返回这个对象。
divide(BigDecimal) BigDecimal对象中的值相除,返回这个对象。
与前者相同,long型数据表示整数的最大值为 9,223,372,036,854,775,807(2^63 -1);但是我们如果
想要表示更大的整数,则会出现问题。此时就需要使用BigInteger来表示超大整数。
JAVA中的BigIntegerl提供了对于超大整数的精确运算。想要使用它,首先要在代码开头加入
import java.math.BigInteger;
赋值:BigInteger a=new BigInteger("1");
方法:
add(); 相加
BigInteger a=new BigInteger(“23”);
BigInteger b=new BigInteger(“34”);
a. add(b);
subtract(); 相减
multiply(); 相乘
divide(); 相除取整
remainder(); 取余
pow(); a.pow(b)=a^b
gcd(); 最大公约数
abs(); 绝对值
negate(); 取反数
部分代码
-ByAurora