30 lines
679 B
C++
Raw Normal View History

2020-05-03 18:35:08 +08:00
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
unsigned long long t,a[101],x,y;
unsigned long long find(unsigned long long now)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>now֮<77><D6AE><EFBFBD>ж<EFBFBD><D0B6>ٸ<EFBFBD>1
{
unsigned long long ans=0,j;//<2F><>ʼ<EFBFBD><CABC>
while (now)//<2F><><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>
{
j=1;
while (a[j+2]<=now) j++;//Ѱ<>ҿ<EFBFBD><D2BF>Լ<EFBFBD><D4BC><EFBFBD>
ans+=a[j];//<2F><><EFBFBD><EFBFBD>һ<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
now-=a[j+1];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>
}
return ans;
}
int main()
{
scanf("%llu",&t);//<2F><><EFBFBD><EFBFBD>
a[1]=1; a[2]=1;//<2F><>ʼ<EFBFBD><CABC>
for (int i=3;i<=100;i++)
a[i]=a[i-1]+a[i-2];//쳲<><ECB3B2><EFBFBD><EFBFBD><EFBFBD>
for (unsigned long long i=1;i<=t;i++)
{
scanf("%llu%llu",&x,&y);//<2F><><EFBFBD><EFBFBD>
printf("%llu\n",find(y)-find(x-1));//<2F><><EFBFBD><EFBFBD>ǰ׺<C7B0><D7BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𰸣<EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
return 0;
}