Puzzlers - shaobin0604/misc GitHub Wiki

Long Division

public class LongDivision {
    public static void main(String[] args) {
        final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
        final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
        System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY);
    }
}

5

Tweedledum

Declare variables x and i such that

x += i;

is legal, but

x = x + i;

is not legal

  • short x = 0;
  • int i = 123456;
public class PlusEquals {
    public static void main(String[] args) {
        int i = 2;
        i += 3.75;
        System.out.println(i);
    }
}

5

Last Laugth

public class LastLaugh {
    public static void main(String[] args) {
        System.out.print("H" + "a");
        System.out.print('H' + 'a');
    }
}

Ha169

Indecision

public class Indecisive {
    public static void main(String[] args) {
        System.out.println(decision());
    }

    static boolean decision() {
        try {
            return true;
        }
        finally {
            return false;
        }
    }
}

false

Hello Goodbye

public class HelloGoodbye { public static void main(String[] args) { try { System.out.println("Hello world!"); System.exit(0); } finally { System.out.println("Goodbye world!"); } } }

Hello world!

The reluctant constructor

public class Reluctant { private Reluctant internalInstance = new Reluctant();

public Reluctant() throws Exception { throw new Exception("I'm not coming out!"); } public static void main(String[] args) { try { Reluctant b = new Reluctant(); System.out.println("Surprise!"); }

Hello again

public class Null { public static void main(String[] args) { ((Null)null).greet(); }

public static void greet() { System.out.println("Hello world!"); }

}

Hello world!

 catch (Exception e) { System.out.println("I told you so."); } }

}

Exception in thread "main" java.lang.StackOverflowError