import java.util.Scanner; import java.math.BigInteger; public class Main{ static final int max = 500; static BigInteger[] arr = new BigInteger[max]; public static void main(String[] args){ Scanner cin = new Scanner(System.in); BigInteger a, b; int i, l, r; arr[1] = BigInteger.ONE; arr[2] = BigInteger.valueOf(2); for(i = 3; i != max; ++i) arr[i] = arr[i - 1].add(arr[i - 2]); while(true){ a = cin.nextBigInteger(); b = cin.nextBigInteger(); if(a.compareTo(BigInteger.ZERO) == 0 && b.compareTo(BigInteger.ZERO) == 0) break; l = binarySearch1(a); r = binarySearch2(b); System.out.println(r - l); } } public static int binarySearch1(BigInteger n){ int i; for(i = 1; i < max; ++i) if(arr[i].compareTo(n) >= 0) return i; return 0; } public static int binarySearch2(BigInteger n){ int i; for(i = 1; i < max; ++i) if(arr[i].compareTo(n) > 0) return i; return 0; } }
10477975 | 2014-04-05 09:09:45 | Accepted | 1316 | 187MS | 5640K | 971 B | Java | 长木 |
HDU1316 How Many Fibs? 【大数】,布布扣,bubuko.com
原文:http://blog.csdn.net/chang_mu/article/details/22976871