30 lines
679 B
C++
30 lines
679 B
C++
|
#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;
|
|||
|
}
|