题意:在L-R的范围内有多少斐波那契数。
思路:大数加法,然后挨个找即可。
AC代码如下:
import java.math.BigInteger;
import java.util.Scanner;
public class Main
{
public static void main(String [] args)
{
Scanner scan=new Scanner(System.in);
BigInteger f[]=new BigInteger[1010],L,R,ret;
int i,j,k;
f[0]=new BigInteger("0");
f[1]=new BigInteger("1");
f[2]=new BigInteger("2");
for(i=3;i<=1000;i++)
f[i]=f[i-2].add(f[i-1]);
String s;//=f[1000].toString();
//System.out.println(s.length());
while(true)
{
L=scan.nextBigInteger();
R=scan.nextBigInteger();
if(L.equals(f[0]) && R.equals(f[0]))
break;
for(i=1;i<=1000;i++)
{
ret=f[i].subtract(L);
s=ret.toString();
if(s.charAt(0)!='-')
break;
}
for(j=i;j<=1000;j++)
{
ret=R.subtract(f[j]);
s=ret.toString();
if(s.charAt(0)=='-')
break;
}
//System.out.println(i+" "+j);
System.out.println(j-i);
}
}
}

本文介绍了一种使用大数加法求解指定范围内斐波那契数的数量的方法,并提供了完整的Java代码实现。该方法适用于处理非常大的斐波那契数列元素。
436

被折叠的 条评论
为什么被折叠?



