2 Answers
2

A causal system does not need to know the future in order to compute its output. A memoryless system computes the output only from the current input. A memoryless system is always causal (as it doesn't depend on future input values), but a causal system doesn't need to be memoryless (because it may depend on past input or output values).

The system $$y[n]=x[n]+2x[n+1]$$ is non-causal because it needs to look into the future (by $1$ sample) to compute its output. The system $$y[n]=3\big(x[n]\big)^2$$ is memoryless (and necessarily causal) because it only needs the current input sample $x[n]$ to compute the output.

The systems in your question are both causal and have memory (if $n_0>0$).

$\begingroup$The OP's definition of a memoryless system requires that outputs not depend upon past inputs or outputs, but says nothing about whether they may rely upon future outputs. I would think that time-reversing a system that neither causal nor memoryless would yield a system that is both.$\endgroup$
– supercatNov 25 '18 at 23:09