#!/usr/bin/perl -w
use strict;
use Memoize;

# Fibonacci sequence
# 2021-04-25, LTu

sub fibo {
    $_[0] < 2 ? $_[0] : fibo($_[0] - 1) + fibo($_[0] - 2)
}
memoize('fibo');
printf "%s\n", fibo($ARGV[0])

### Intel Core m3 1.2 HHz, without memoize
#
# $ time ./fibo.pl 40
# 
# 102334155
# 
# real  1m10.381s
# user  1m6.836s
# sys   0m0.272s
# 
# 
### with memoize
#
# $ time ./fibo.pl 40
# 
# 102334155
# 
# real  0m0.067s
# user  0m0.020s
# sys   0m0.011s