codeforces 267A A. Subtractions(辗转相除)

来源:互联网 发布:万国数据 员工待遇怎样 编辑:程序博客网 时间:2024/06/04 08:56

题目链接:

codeforces 267A


题目大意:

给出一个数对,(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 );    }}
0 0
原创粉丝点击