Sandi Metz solved the Roman numerals kata in a very interesting way. Along the way she makes the case for keeping code simple.

The desire for simplicity means that I abhor special cases. I am willing to trade CPU cycles to achieve sameness. I'll happily perform unnecessary operations on objects that are already perfectly okay if that lets me treat them interchangeably. Code is read many more times that it is written, and computers are fast. This trade is a bargain that I'll take every time.

http://www.sandimetz.com/blog/2016/6/9/make-everything-the-same

Amen to that. I did not know that additive Roman numerals are perfectly valid.

If you want to read more posts by Sandi, be sure to subscribe to her newsletter.