continued_fractions.pl 562 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/perl
  2. # Author: Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Date: 04 November 2015
  5. # Website: https://github.com/trizen
  6. # Continued fractions
  7. use 5.010;
  8. use strict;
  9. use warnings;
  10. no warnings 'recursion';
  11. sub root2 {
  12. my ($n) = @_;
  13. return 0 if $n <= 0;
  14. 1.0/(
  15. 2.0 + root2($n-1)
  16. )
  17. }
  18. sub e {
  19. my($i, $n) = @_;
  20. return 0 if $n >= $i;
  21. 1.0/(
  22. 1.0 + 1.0/(
  23. 2.0*$n + 1.0/(
  24. 1.0 + e($i, $n+1)
  25. )
  26. )
  27. )
  28. }
  29. say 1+root2(100); # sqrt(2)
  30. say 2+e(100, 1); # e