思路:此题的数据规模太大了,肯定不能去递归,最后想到下面这个办法
由结果(s,e)向(1,1)推,如果s>e,s-=e;如果s<e,e-=s;但是由于数据太大了,减法要超时,所以改成除法就行了
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
#include <stdio.h>
int main()
{
int n,s,e,left,right,l=1,a;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&s,&e);
left=right=0;
while(s!=e)
{
if(s<e)
{
a=e/s;
e%=s;
if(e==0)a--,e++;
right+=a;
}
if(s>e)
{
a=s/e;
s%=e;
if(s==0)a--,s++;
left+=a;
}
}
printf("Scenario #%d:\n",l++);
printf("%d %d\n\n",left,right);
}
return 0;
}