首先把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); } } }