题解 CF317A 【Perfect Pair】
引领天下
2019-05-15 08:58:54
讲道理,这个题其实真没什么好说的,就是直接模拟
基本思路很简单:每次挑小的换成和。
具体看代码吧
```cpp
#include<bits/stdc++.h>
using namespace std;
typedef long long llint;
llint x,y,m,ans;
int main(){
cin>>x>>y>>m;
if (x>=m||y>=m){
puts("0");
return 0;
}//如果直接符合,直接输出
if (x<=0&&y<=0){
puts("-1");
return 0;
}//如果x、y都负,则不可能变成完美
if (x>y)swap(x,y);//如果x比y大,换一下
if (x<0){
ans+=(-x)/y;
x+=(-x)/y*y;
}//如果有个负的,想办法把他弄成正的(方法:始终加y)
while(x<m&&y<m){
if (x>y) swap(x,y);
x+=y;
ans++;
}//模拟
cout<<ans<<endl;
return 0;
}
```