Java水了。
1 import java.util.Scanner; 2 import java.math.BigInteger; 3 4 public class Main { 5 public static void main(String[] args) { 6 Scanner cin = new Scanner(System.in); 7 BigInteger[] fibs = new BigInteger[MAXN]; 8 // init the fibs 9 fibs[0] = BigInteger.valueOf(1); 10 fibs[1] = BigInteger.valueOf(2); 11 int n = 2; 12 while (true) { 13 fibs[n] = fibs[n-1].add(fibs[n-2]); 14 ++n; 15 if (fibs[n-1].toString().length() >= 101) 16 break; 17 } 18 // System.out.println(n); 19 while (cin.hasNext()) { 20 BigInteger aa = cin.nextBigInteger(); 21 BigInteger bb = cin.nextBigInteger(); 22 if (aa.compareTo(BigInteger.ZERO)==0 && bb.compareTo(BigInteger.ZERO)==0) { 23 break; 24 } 25 int ans = 0; 26 for (int i=0; i<n; ++i) { 27 if (fibs[i].compareTo(aa) >= 0) { 28 if (fibs[i].compareTo(bb) <= 0) 29 ++ans; 30 else 31 break; 32 } 33 } 34 System.out.println(ans); 35 } 36 } 37 38 public static final int MAXN = 505; 39 }