2012年11月25日 星期日

大朋友下樓梯


內容 : 
傳說,有個遊戲叫做大朋友下樓梯,這個遊戲有三種難度,簡單中等困難。

三種難度的差別是,簡單的難度大朋友一次只能下樓梯 1格

中等的是則是,大朋友一次可以下樓梯 1格或 2格

困難的比較具有挑戰性,大朋友一次可以下 1格、 2格或 3格


現在我們想知道,大朋友有幾種下樓梯的方法可以走到地下k樓

對了,有一個限制是,大朋友不能上樓梯只能下樓梯
輸入說明 :
給定兩個正整數 t, k , t代表遊戲難度,值為1~3 分別代表,簡單中等困難。

k則是一個負數,代表地下k樓(0>k>-20)

包含多筆測試資料。
輸出說明 :
輸出大朋友走到地下K層後的方法數。
範例輸入 : 
1 -1 
1 -2 
2 -1 
2 -2 
2 -3 
2 -4 
3 -1 
3 -2 
3 -3 
 
範例輸出 :
4

2 則留言:

  1. Dim Level, stair, countt As Integer
    Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do
    Input #1, Level, stair: stair = Abs(stair)
    countt = 0: Call rr(stair)
    Print #2, countt
    Loop Until EOF(1)
    Close #2
    Close #1
    End
    End Sub


    Public Function rr(ByVal k As Integer)
    If k = 0 Then
    countt = countt + 1
    Else
    For i = 1 To Level
    If k - i >= 0 Then Call rr(k - i)
    Next
    End If
    End Function

    回覆刪除
  2. Dim ans, x As Integer
    Private Sub Form_Load()
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do While Not EOF(1)
    Input #1, x, y
    ans = 0
    Call a(Abs(y))
    Print #2, ans
    Loop
    Close #2
    Close #1
    End
    End Sub
    Sub a(b)
    If b = 0 Then
    ans = ans + 1
    Else
    For i = 1 To Val(x)
    If (b - i) >= 0 Then Call a(b - i)
    Next i
    End If
    End Sub

    回覆刪除