枚举

因为要X==Y,则

1.开始X==Y

2.设法让X+Y==X−Y,

则Y==0,而题目条件(1.​交换:(X,Y)=(Y,X);2.​变换:(X,Y)=(X+Y,X−Y))可以知Y==0可以由X==0求得,所以

X==0 或Y==0或X+Y==0 或X-Y==0

参考:

(证明:https://blog.nowcoder.net/n/4aa34c74d64a4a328e590caee6ef877b

(使用暴力,https://blog.nowcoder.net/n/becbe47910f741beb0c91bc007f90a3b)(这个可能边界值找麻烦,而且要精确证明)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int X=in.nextInt();
        int Y=in.nextInt();
        if(X==Y){
            System.out.println(0);
        }else if(Y==0){
            System.out.println(1);

        }else if(X==0){
            System.out.println(2);
        }else if(X+Y==0){
            System.out.println(3);
        }else{
            System.out.println(-1);
        }
    }
}