Problem15

30分プログラム、その281。Problem15 via Project Euler

2 × 2 のマス目の左上からスタートした場合、引き返しなしで右下にいくルートは 6 つある。

http://odz.sakura.ne.jp/projecteuler/index.php?plugin=ref&page=Problem%2015&src=p_15.gif

では、20 × 20 のマス目ではいくつのルートがあるか。

これは、確か高校でもやった気がする。20×20の場合、40!/(20!\cdot 20!)で答えがでる。なので、非常に簡単に解ける。

使い方

$ perl problem15.pl
137846528820

ソースコード

#! /usr/bin/perl
# -*- mode:perl; coding:utf-8 -*-
#
# problem15.pl -
#
# Copyright(C) 2008 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2008/04/06 22:40:26
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#

use strict;
use warnings;

sub fact($){
  my ($n) = @_;
  if($n == 1){
    1;
  }else{
    $n * &fact($n-1);
  }
}

print fact(40)/(fact(20)**2),"\n";