The outer is O(2^n), not n^2. You can easily calculate the number of times the "print j" statements runs. The value of j is always 2^(i-1), and the inner loop runs a total of:
2^0 + 2^1 + 2^2 + ... + 2^(n-1) = 2^n - 1 times
(That's a geometric series. a + ar + ar^2 + ... + ar^(n-1) = a(r^n - 1)/(r - 1), with a=1, r=2)
So, technically both you and the solution sheet are right, since O(2^n) is also O(n*2^n). There are values of K and N such that the run time is less that K*n*2^n for all n>N.
But 2^n is a tighter upper bound that's not hard to derive.