HDU-1316 How Many Fibs? Java

  首先把100位长的斐波那契数全部计算出来,然后遍历计数,很暴力啊!

  代码如下:

import java.math.BigInteger;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        BigInteger[] a = new BigInteger[1000];
        a[1] = BigInteger.ONE;
        a[2] = BigInteger.ONE.add( BigInteger.ONE );
        a[3] = a[1].add(a[2]);
        int i;
        for (i = 3; i <= 500; ++i) {
            a[i] = a[i - 1].add(a[i - 2]);
        }
        BigInteger l, r;
        while (in.hasNextBigInteger()) {
            int cnt = 0;
            l = in.nextBigInteger();
            r = in.nextBigInteger();
            if (BigInteger.ZERO.equals(l) && BigInteger.ZERO.equals(r)) {
                break;
            }
            for (int j = 1; j <= 500; ++j) {
                if (l.compareTo(a[j]) <= 0 && r.compareTo(a[j]) >= 0) {
                    cnt++;
                }
            }
            System.out.println(cnt);
        }
    }
}

  

posted @ 2011-08-14 15:14  沐阳  阅读(382)  评论(0编辑  收藏  举报