using System; using System.Collections.Generic; class Program { static string InputPattern = "Input5"; static List GetInputList() { var WillReturn = new List(); if (InputPattern == "Input1") { WillReturn.Add("2"); } else if (InputPattern == "Input2") { WillReturn.Add("3"); } else if (InputPattern == "Input3") { WillReturn.Add("5"); } else if (InputPattern == "Input4") { WillReturn.Add("50"); } else { string wkStr; while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr); } return WillReturn; } static void Main() { List InputList = GetInputList(); int N = int.Parse(InputList[0]); //1マスなら1通り //2マスなら2通り //3なら最初に1マス進めば、残り2マスでの場合の数 // 最初に2マス進めば、残り1マスでの場合の数 //4なら最初に1マス進めば、残り3マスでの場合の数 // 最初に2マス進めば、残り2マスでの場合の数 //よって、フィボナッチ数列の漸化式となる long[] PatternCntArr = new long[N + 1]; int UB = PatternCntArr.GetUpperBound(0); PatternCntArr[1] = 1; PatternCntArr[2] = 2; for (int I = 3; I <= UB; I++) { PatternCntArr[I] = PatternCntArr[I - 1] + PatternCntArr[I - 2]; } Console.WriteLine(PatternCntArr[UB]); } }