golomb_s_sequence.pl 543 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/perl
  2. # Daniel "Trizen" Șuteu
  3. # Date: 29 November 2016
  4. # https://github.com/trizen
  5. # A recursive function that represents the Golomb's sequence.
  6. # See also:
  7. # https://oeis.org/A001462
  8. # https://projecteuler.net/problem=341
  9. # https://en.wikipedia.org/wiki/Golomb_sequence
  10. use 5.020;
  11. use strict;
  12. use warnings;
  13. no warnings qw(recursion);
  14. use experimental qw(signatures);
  15. use Memoize qw(memoize);
  16. memoize('G'); # this will save time
  17. sub G($n) {
  18. $n == 1 ? 1 : 1 + G($n - G(G($n - 1)));
  19. }
  20. say "G(1000) = ", G(1000);