> 文章列表 > 要重复多少次直至a=b

要重复多少次直至a=b

要重复多少次直至a=b

问题陈述

已知正整数A和B。重复以下操作,直到A = B:比较A和B,执行以下两项中的一项:
o如果A > B,将A替换为A - B;
O如果A < B,则用B -A替换B。你要重复多少次,直到A= B?可以保证有限次重复使a = B。约束1 < A、B < 10的18次方,输入中的所有值都是整数。

示例

样本输入1
3 8
示例输出1
4
最初,A = 3, B = 8。重复执行如下操作。
A < B,因此用B - A = 5替换B,使A = 3, B = 5。
A < B,因此用B-A=2替换B,使A=3, B=2。
A> B,所以用A-B= 1替换A,使A= 1, B= 2。
A < B,因此用B-A = 1替换B,使A = 1, B = 1。
这样,你重复四次。

样本输入2
1234567890, 1234567890,
样本输出2
0
注意,输入可能不适合32位整数类型。

样本输入3
1597, 987,
示例输出3
15

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
int main()
{std::ios::sync_with_stdio(false);std::cin.tie();std::cout.tie(0);ll a,b;cin>>a>>b;ll ans=0;while(a!=b){if(a<b)swap(a,b);else{if(a%b==0){ans+=a/b-1;break;}else{ans+=a/b;a%=b;}}}cout<<ans;return 0;
}

搜索引擎优化