C++ 主要是找到变换的规律,① (x,y)->(y,x),② (x,y)->(x+y,x-y)

连续两次①或②变换,始终是n*(x, y),除非本来x=y否则不可能,而x=y符合要求,变换次数为0;

变换一次②,若x+y=x-y则y=0

变换①后变换②,即y+x=y-x则x=0;变换②①结果等同变换一次②(意思是y-x=y+x);变换①②①结果等同变换①②;

变换②①②,即 x'=x+y, y'=x-y -> y',x' -> y'+x'=x'-y' 即 x'=0=x+y

变换②①②①等同②①②,变换②①②②等同②①,以此类推只有4种可能的情况。

#include <iostream>
using namespace std;

int main() {
    int x, y;
    cin >> x >> y;
    int cnt=0;
    if (x==y) cout << 0 << endl;
    else if (y==0) cout << 1 << endl;
    else if (x==0) cout << 2 << endl;
    else if (x+y==0) cout << 3 << endl;
    else cout << -1 << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")