Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Java dinamikus programozás?

528
Sziasztok!
Hogyan kellene megcsinálni ezt a feladatot? Mert ahogy megcsináltam az elvileg nem jó.






N darab lépcsőfok van. Egyszerre csak 1 vagy 2 lépést tudunk megtenni
és azt szeretnénk kiszámolni, hogy ilyen módon hányféleképpen mászhatjuk meg az n lépcsőfokot.
Alkalmazzunk Dinamikus Programozást.
Nagy n-re is le kell futnia a megvalósításnak így érdemes long-ként
tárolni a részeredményeket.

public static long StepCounter(int n) metódust kell implementálni.

Bemenet: n, lépcsők száma
Kimenet: egy egész szám, ahányféleképpen felmehetünk a lépcsőn

PL. input: StepCounter(10) -> output2: 89


Így csináltam meg:
https://kepkuldes.com/images/c9957bd989a2cbaf1f7513ccc029bbe1.png

Ki is adja a jó megoldásokat de ahova fel kell töltenem nem fogadja el.
Jelenleg 1 felhasználó nézi ezt a kérdést.
Java, dinamikus, progaromzás
0
Felsőoktatás / Informatika

Válaszok

2
A feladat megoldása valóban az n-edik Fibonacci-szám, és a függvényed is ezt állítja elő. Viszont a neve StepCounter helyett StepCounting lett. Ha automatikus felületen történik az ellenőrzés, akkor ez lehet a probléma. Ezen kívül érdemes lenne ellenőrizni a bemenet érvényességét, és n < 1 esetén 0-t visszaadni.

Továbbá a tömbök indexelése 0-tól indul, nem 1-től, tehát a tömbödben van egy fölöslegesen lefoglalt, nem inicializált és nem használt elem (T[0]).
0

n=0-ra 1-et kell visszaadni, csak negatívra kell nullát. Lehet, hogy ellenőrzik a 0-t is....
Szóval T[0] = 1;-et is tegyél bele.
0