內容 :
傳說,有個遊戲叫做大朋友下樓梯,這個遊戲有三種難度,簡單中等困難。
三種難度的差別是,簡單的難度大朋友一次只能下樓梯 1格
中等的是則是,大朋友一次可以下樓梯 1格或 2格
困難的比較具有挑戰性,大朋友一次可以下 1格、 2格或 3格
現在我們想知道,大朋友有幾種下樓梯的方法可以走到地下k樓
對了,有一個限制是,大朋友不能上樓梯只能下樓梯
三種難度的差別是,簡單的難度大朋友一次只能下樓梯 1格
中等的是則是,大朋友一次可以下樓梯 1格或 2格
困難的比較具有挑戰性,大朋友一次可以下 1格、 2格或 3格
現在我們想知道,大朋友有幾種下樓梯的方法可以走到地下k樓
對了,有一個限制是,大朋友不能上樓梯只能下樓梯
輸入說明 :
給定兩個正整數 t, k , t代表遊戲難度,值為1~3 分別代表,簡單中等困難。
k則是一個負數,代表地下k樓(0>k>-20)
包含多筆測試資料。
k則是一個負數,代表地下k樓(0>k>-20)
包含多筆測試資料。
輸出說明 :
輸出大朋友走到地下K層後的方法數。
範例輸入 :
1 -1
1 -2
2 -1
2 -2
2 -3
2 -4
3 -1
3 -2
3 -3
範例輸出 :
1
1
1
2
3
5
1
2
4
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
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