题目链接:
题目大意:
给出一个数对,(a,b)每次用较大的减较小的,直到出现0为止,问要进行多少次操作。
题目分析:
- 大的减小的操作,可以利用取模优化过程,也就是辗转相除,商是操作次数,余数是下一段与之前较小的数继续进行操作的数,水题不做赘述。
AC代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int ans,n,a,b;
void dfs ( int a , int b )
{
if ( a < b ) swap ( a , b );
if ( !b ) return;
ans += a/b;
dfs ( b , a%b );
}
int main ( )
{
scanf ( "%d" , &n );
while ( n-- )
{
ans = 0;
scanf ( "%d%d" , &a , &b );
dfs ( a , b );
printf ( "%d\n" , ans );
}
}