UVA 10183 斐波那契数列

来源:互联网 发布:日本经济泡沫知乎 编辑:程序博客网 时间:2024/06/06 09:00

 

Problem B: How many Fibs?

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 Specification

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<=10100. The numbers a and b are given with no superfluous leading zeros.

Output Specification

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

Sample Input

10 1001234567890 98765432100 0

Sample Output

54

 

直接利用java大数可以水过

 

import java.util.*;import java.math.*;public class Main {public static void main(String args[]){Scanner cin=new Scanner(System.in);BigInteger f[]=new BigInteger[1000];BigInteger a,b;int i,ans;f[1]=BigInteger.ONE;f[2]=BigInteger.valueOf(2);for(i=3;i<1000;i++)f[i]=f[i-1].add(f[i-2]);while(true){a=cin.nextBigInteger();b=cin.nextBigInteger();if(a.compareTo(b)>0){System.out.println(0);continue;}if(a.compareTo(BigInteger.ZERO)==0&&b.compareTo(BigInteger.ZERO)==0)break;ans=0;for(i=1;i<1000;i++){if(f[i].compareTo(a)>=0&&f[i].compareTo(b)<=0)ans=ans+1;}System.out.println(ans);}}}


 

原创粉丝点击