Java学习笔记(二)

  再我还没有接触Java时就听说了Java有个BigInteger大数类很好用,很方便,我是比较讨厌慢慢找东西看然后学东西,所以就直接上oj找了一些高精度类的题目做了一下,在做题的过程中寻找这个东西的用法,然后总结总结,大概就做了三题,poj 3982,poj 2506,poj 1405。

  大数类所用的“库”是java.math.*; 原谅我,我把import java.*.*暂且理解为C/C++里的#include <>

  poj 3982:

import java.util.*;

import java.math.*;



public class Main {



    /**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Scanner cin = new Scanner(System.in);

        while (cin.hasNext()) {

            BigInteger a = cin.nextBigInteger();

            BigInteger b = cin.nextBigInteger();

            BigInteger c = cin.nextBigInteger();

            BigInteger d = new BigInteger("0");

            int i;

            for (i = 4;i <= 100;i++) {

                d = a.add(b.add(c));

                a = b;

                b = c;

                c = d;

            }

            System.out.println(d);

        }

    }



}

  poj 2506 :

import java.util.*;

import java.math.*;

public class Main {



    /**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        BigInteger d[] = new BigInteger[251];

        d[0] = BigInteger.valueOf(1);

        d[1] = BigInteger.valueOf(1);

        d[2] = BigInteger.valueOf(3);

        for (int i = 3;i <= 250;i++)

            d[i] = d[i-1].add(d[i-2].multiply(BigInteger.valueOf(2)));

        Scanner cin = new Scanner(System.in);

        while (cin.hasNext()) {

            int u = cin.nextInt();

            System.out.println(d[u]);

        }

    }

}

  poj 1405:

import java.util.*;

import java.math.*;



public class Main {



    /**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Scanner cin = new Scanner(System.in);

        int n = cin.nextInt();

        BigInteger d[] = new BigInteger[19];

        d[1] = BigInteger.valueOf(2);

        System.out.println(d[1]);

        for (int i = 2;i <= n;i++) {

            d[i] = BigInteger.valueOf(1).add(d[i-1].multiply(d[i-1].subtract(BigInteger.valueOf(1))));

            System.out.println(d[i]);

        }

    }



}

  目前大概知道的操作如下:

  x = new BigInteger("..."); 将字符串转换为BigInteger类型

  BigInteger.valueOf(value); value 整型,将整型转换为BigInteger类型

  BigInteger.add(BigInteger) 加法

  BigInteger.subtract(BigInteger) 减法

  BigInteger.multiply(BigInteger) 乘法

  BigInteger.divide(BigInteger) 除法

  另外输入支持cin.nextBigInteger(BigInteger)操作

你可能感兴趣的:(Java学习)