Leonardo numbers

Because Fibonacci numbers are quite abused in programming, a similar concept. My first impulse is to describe them in recursive way: But this is not very efficient to calculate them, as for each is calculating all the previous ones, recursively. Here memoization works beautifully Taking into account that it uses more memory, and that calculating the Nth element without calculating the previous ones is also costly. I saw this on Programming Praxis, and I like a lot the solution proposed by Graham on the comments, using an iterator. The code is really clean.

Narcissistic numbers

Here is a nice mathematical exercise from Programming Praxis. Is about finding the “narcissistic numbers”, n digit numbers numbers where the sum of all the nth power of their digits is equal to the number. To reduce the problem a little, I decided to start by limiting the number of digits. So, the first approach will be just calculate if a number is narcissistic of not. So, after checking it and making a couple of performance adjustments, the code is as follows…