Exercise14_11

来源:互联网 发布:网络宣传部职责 编辑:程序博客网 时间:2024/06/08 06:30

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++;        }    }}

}
`

原创粉丝点击