An algorithm for computing recursively the exact system reliability of k-out-of-n systems is proposed. It is simple, easy to implement, fast, and memory efficient. It gives a reliability expression with minimal number of terms, C(k, n) and involves only a few multiplications. The reduction in number of terms and multiplications is over 50 percent compared to some methods. The recursive nature of the algorithm enables one to design easily the number of units in the system to meet a reliability target. An alternative representation of the algorithm which is easy to remember and good for manual computation is given. However, it involves a few more multiplications compared to the original one but fewer than those required with existing methods.