【yukicoder】No.44 DPなすごろく

お馴染み yukicoder で勉強です。慣れてきたので簡単な問題はサクサクコードかけるようになってきました。

問題

問題はこちら

解法

動的計画法(DP: Dynamic Programming)です。中でも一番よく聞く簡単なフィボナッチ数列です。

 [1, 1, 2, 3, 5, 8, 13, 21, 43, ... ]

数式にすると次の関係があります。

F_0 = 0

F_1 = 1

F _ n = F _ {n-1} + F _ {n-2}

今回の問題では  N マス目に行くパターンの数を求めます。パターンの数を F_n とすると、

 N マス目に行くパターンは N - 1 マス目で1進む場合と、N - 2 マス目で2進む場合なので、F _ n = F _ {n-1} + F _ {n-2} となります。

Python3

コード

n=int(input())
a=0
b=1
for i in range(n):
    t=a+b
    a=b
    b=t
print(b)