题解 CF317A 【Perfect Pair】

引领天下

2019-05-15 08:58:54

Solution

讲道理,这个题其实真没什么好说的,就是直接模拟 基本思路很简单:每次挑小的换成和。 具体看代码吧 ```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; } ```