http://acm.hdu.edu.cn/showproblem.php?pid=2044 思路: 1->2:1-2 1->3:1-2-3,1-3 1->2->3是可以根据1->2得来的 1-4:1-2-4,1-2-3-4,1-3-4 1-2-4是根据1->2得来,1-2-3-4和1-3-4是根据1->3得来的 1-5:同理。。 a->b=1->(b-a+1) 边界数据验证,需要用__int64 代码: #include<iostream> using namespace std; int main() { int n,i,a,b; __int64 f[50]; f[1]=1,f[2]=2; for(i=3;i<50;i++) f[i]=f[i-1]+f[i-2]; cin>>n; while(n--) { cin>>a>>b; cout<<f[b-a]<<endl; } return 0; }