记录编号 32937 评测结果 AAAAAAAAAA
题目名称 产生01串 最终得分 100
用户昵称 Gravatarkaaala 是否通过 通过
代码语言 C++ 运行时间 0.106 s
提交时间 2011-11-08 20:08:28 内存使用 0.27 MiB
显示代码纯文本
#include<iostream>  
#include<fstream>  
  
using namespace std;  
  
int n;  
unsigned long long a,b,ans,f[94],g[94];  
  
void fibonacci()  
{  
    int i;  
    f[1]=1;  
    f[2]=2;  
    g[1]=1;  
    g[2]=1;  
    for(i=3;i<93;i++)  
    {  
        f[i]=f[i-1]+f[i-2];  
        g[i]=g[i-1]+g[i-2];  
    }  
}  
  
unsigned long long work(unsigned 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;  
}