碁盤目状路の経路数探索
http://projecteuler.net/index.php?section=problems&id=15
誰もが一度は見たであろう問題。さすがに20*20を手計算で解いた経験はありません。
問題が簡単な分、コードに凝ってみる。再帰+キャッシュ
# -*- coding:utf-8 -*- cache = {1:1} def chain(n): if not cache.get(n,0): cache[n] = n * chain(n-1) return cache[n] def main(): return chain(40)/chain(20)/chain(20) print main()