From 4cea68f1362fba7f328788061e84708aa29ad573 Mon Sep 17 00:00:00 2001 From: Noud Aldenhoven Date: Sat, 4 Jan 2020 11:38:31 +0100 Subject: Fix first Leonardo number, i.e. L(0) = L(1) = 1 --- challenge-041/noud/perl6/ch-2.p6 | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/challenge-041/noud/perl6/ch-2.p6 b/challenge-041/noud/perl6/ch-2.p6 index acbd775229..d450aa2817 100644 --- a/challenge-041/noud/perl6/ch-2.p6 +++ b/challenge-041/noud/perl6/ch-2.p6 @@ -12,13 +12,17 @@ # Define a lazy fibonacci sequence. constant @fib = 0, 1, * + * ... *; -# Leonard numbers are related to Fibonacci numbers as -# leonard(n) = 2 * fib(n) + 1 -sub leonard(Int $n) { - 2 * @fib[$n] + 1; +# Leonardo numbers are related to Fibonacci numbers as +# leonardo(n + 1) = 2 * fib(n) + 1 +sub leonardo(Int $n) { + if ($n == 0) { + 1; + } else { + 2 * @fib[$n - 1] + 1; + } } -say "Leonard numbers 0 to 20:"; -for 0..20 -> $n { - leonard($n).say; +say "First 20 Leonardo numbers:"; +for ^20 -> $n { + leonardo($n).say; } -- cgit