| 比赛 | 
    20111107 | 
    评测结果 | 
    AWWWWWWEAA | 
    | 题目名称 | 
    产生01串 | 
    最终得分 | 
    30 | 
    | 用户昵称 | 
    kaaala | 
    运行时间 | 
    0.000 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.00 MiB  | 
    | 提交时间 | 
    2011-11-07 09:53:01 | 
显示代码纯文本
#include<iostream>
#include<fstream>
using namespace std;
int n;
long long a,b,ans,f[101],g[101];
void fibonacci()
{
	int i;
	f[1]=1;
	f[2]=2;
	g[1]=1;
	g[2]=1;
	for(i=3;i<=100;i++)
	{
		f[i]=f[i-1]+f[i-2];
		g[i]=g[i-1]+g[i-2];
	}
}
int  work(long long a,int i)
{
	unsigned long long sum;
	if(a==0)
		return 0;
	if(a==f[i])
		return g[i];
	if(a<=f[i])
		return work(a,i-1);
	else
	{
		sum=work(a-f[i],i-2);
		return g[i]+sum;
	}
}
int main()
{
	int i;
	ifstream fin("infinit.in");
	ofstream fout("infinit.out");
	fibonacci();
	fin>>n;
	for(i=1;i<=n;i++)
	{
		fin>>a>>b;
		ans=work(b,92)-work(a-1,92);
		fout<<ans<<endl;
	}
	fin.close();
	fout.close();
	return 0;
}