14.11(被5或6整除)找出能被5或6整除的前10个数字(大于Long.MAX_VALUE)
这个主要考察的是对于BigInteger类的应用,一开始我想法很简单,直接用跟int类型一样的方法,先加然后再用%取余数,结果发现不能跟int类型混合使用,然后也不能直接用==来判断是否被整除。书上关于类的实现实例太少了,很多方法只能靠做题一点点摸索了。
加法实现:a.add(b);
取余实现:result = a.mod(b);
判断整除:result.equals(zero);
import java.math.BigInteger;
public class Exercise14_11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
BigInteger m = BigInteger.valueOf(Long.MAX_VALUE);
BigInteger[] a ;
a= new BigInteger[10];
BigInteger five = new BigInteger(5+"");
BigInteger six = new BigInteger(6 + "");
BigInteger zero = new BigInteger(0+"");
int j = 0;
for(int i = 1; j<10 ; i++) {
BigInteger n =new BigInteger(i + "");
BigInteger result = m.add(n);
BigInteger mod1 = result.mod(five);
BigInteger mod2 = result.mod(six);
if((mod1.equals(zero) || mod2.equals(zero))) {
a[j] = m.add(n);
j++;
}
}
}
}
`