Pelaat peliä, jossa on n tasoa. Olet aluksi tasolla 0 ja sinun tulee päästä tasolle n. Joka askeleella voit hypätä a tai b tasoa ylemmäs. Monellako tavalla voit läpäistä pelin?
Esimerkiksi kun n=4, a=1 ja b=2, tapoja on 5:
- 0 \rightarrow 1 \rightarrow 2 \rightarrow 3 \rightarrow 4
- 0 \rightarrow 1 \rightarrow 2 \rightarrow 4
- 0 \rightarrow 1 \rightarrow 3 \rightarrow 4
- 0 \rightarrow 2 \rightarrow 3 \rightarrow 4
- 0 \rightarrow 2 \rightarrow 4
Voit olettaa, että 3 \le n \le 50 ja 1 \le a < b \le n.
Python
Toteuta tiedostoon jumping.py
funktio count
, joka ilmoittaa vastauksen.
def count(n,a,b): # TODO if __name__ == "__main__": print(count(4,1,2)) # 5 print(count(10,2,5)) # 2 print(count(10,6,7)) # 0 print(count(30,3,5)) # 58 print(count(50,2,3)) # 525456
Java
Toteuta tiedostoon Jumping.java
metodi count
, joka antaa vastauksen.
public class Jumping { public long count(int n, int a, int b) { // TODO } public static void main(String[] args) { Jumping j = new Jumping(); System.out.println(j.count(4,1,2)); // 5 System.out.println(j.count(10,2,5)); // 2 System.out.println(j.count(10,6,7)); // 0 System.out.println(j.count(30,3,5)); // 58 System.out.println(j.count(50,2,3)); // 525456 } }