public class C {
  private int x;

  public C(int x) {
    this.x = x;
  }

  public void setX(int x) {
    this.x = x;
  }

  public String toString() {
    return "x = " + x;
  }

  public boolean equals(Object obj) {

    boolean result = obj instanceof C;

    if (!result)
      return false;

    // if(! (obj instanceof C))

    C another = (C) obj;

    return this.x == another.x;
  }

  public static void main(String[] args) {
    C var;
    var = new C(6);
    System.out.println(var);

    C var2 = new C(6);

    System.out.println(var.equals(var2));

    int num1 = 2;

    int num2 = num1;

    num2++;

    System.out.println(num1);

    C c1 = new C(2);

    C c2 = c1;

    c2.setX(5);

    System.out.println(c1);

    System.out.println(binom(1000, 100));
  }

 //(a + b) ^ n
  public static int binom(int n, int r) {

  if(r==0 || r==n)
    return 1;

  return binom(n-1, r-1) + binom(n-1, r);
}
}