# How Many Fibs?

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6371    Accepted Submission(s): 2517

Problem Description

Recall the definition of the Fibonacci numbers:
f1 := 1
f2 := 2
fn := fn-1 + fn-2 (n >= 3)

Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a, b].

Input

The input contains several test cases. Each test case consists of two non-negative integer numbers a and b. Input is terminated by a = b = 0. Otherwise, a <= b <= 10^100. The numbers a and b are given with no superfluous leading zeros.

Output

For each test case output on a single line the number of Fibonacci numbers fi with a <= fi <= b.

Sample Input

10 100

1234567890 9876543210

0 0

Sample Output

5

4

 1 import java.util.Scanner;
2 import java.math.*;
3
4 /**
5  * @author 日天大帝
6  * 第480个斐波数是101位，打个表开480够用
7  */
8 public class Main {
9     public static void main(String[] args) {
10         Scanner cin = new Scanner(System.in);
11         final int MAX = 480;
12         BigInteger arr[] = new BigInteger[MAX];
13         arr[0] = BigInteger.ONE;
14         arr[1] = BigInteger.valueOf(2);
15         for(int i=2; i<MAX ; ++i){
16             arr[i] = arr[i-1].add(arr[i-2]);
17         }
18         while(cin.hasNext()){
19             BigInteger a = cin.nextBigInteger();
20             BigInteger b = cin.nextBigInteger();
21             if(a.compareTo(b) == 0 && a.compareTo(BigInteger.ZERO) == 0)break;
22             int ct = 0;
23             for(int i=0;; ++i){
24                 if(arr[i].compareTo(b) > 0)break;
25                 if(arr[i].compareTo(a) >= 0)ct++;
26             }
27             System.out.println(ct);
28         }
29     }
30 }

## hdu 1316 How many Fibs?(高精度斐波那契数)

//  大数继续 Problem Description Recall the definition of the Fibonacci numbers: f1 := 1 f2 := 2 fn := fn-1 + fn-2 (n >= 3) Given two numbers a and b, calculate how many Fibonacci numbers are in the range [a, b]. Input The input contains several test cas

## UVA10183 - How Many Fibs?(java大数+二分)

UVA10183 - How Many Fibs?(java大数+二分) 题目链接 题目大意:给你a,b,求[a,b]之间有多少个fibs数. 解题思路:虽然a.b很大,但是在10^100内的fibs却不超过500个.这样就可以先把这些fibs保存在数组中,然后每次二分去找a,b的位置,然后就可以得到之间有多少个fibs. 代码: import java.util.*; import java.math.*; import java.io.*; import java.lang.String.*

## HDU 4927 Series 1 java大数

java mle前会wa 或者 t 这种事我会乱说? import java.math.*; import java.util.*; import java.io.*; public class Main { BigInteger[] a = new BigInteger[3007]; public void work() { int T; T = cin.nextInt(); while (T-- > 0) { int n; n = cin.nextInt(); for (int i = 0;