Problem 15


15問目。20*20の区画で最短距離の個数を求めろという問題。
公式に当てはめたら一瞬で解けた。こんなんでいいのかと逆に心配になった。

#!/usr/bin/perl
use strict;
use warnings;

print "Answer is ", p15(20, 20), "\n";

sub p15
{
  my ($length, $width) = @_;

  return factorial($length + $width) / (factorial($length) * factorial($width));
}

sub factorial
{
  my ($num) = @_;

  my $sum = 1;
  map { $sum *= $_} (2..$num);
  return $sum;
}