diff options
| author | Noud Aldenhoven <noud.aldenhoven@gmail.com> | 2020-01-04 11:38:31 +0100 |
|---|---|---|
| committer | Noud Aldenhoven <noud.aldenhoven@gmail.com> | 2020-01-04 11:38:31 +0100 |
| commit | 4cea68f1362fba7f328788061e84708aa29ad573 (patch) | |
| tree | 325072a182ed3afe5b75af68ab5ac65506bb9281 | |
| parent | 3469b83f7fa98f887c79973e498d3138da73e11e (diff) | |
| download | perlweeklychallenge-club-4cea68f1362fba7f328788061e84708aa29ad573.tar.gz perlweeklychallenge-club-4cea68f1362fba7f328788061e84708aa29ad573.tar.bz2 perlweeklychallenge-club-4cea68f1362fba7f328788061e84708aa29ad573.zip | |
Fix first Leonardo number, i.e. L(0) = L(1) = 1
| -rw-r--r-- | challenge-041/noud/perl6/ch-2.p6 | 18 |
1 files 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; } |
