Pénzváltás

Pénzváltás

Nehéz

Bevezetés

A mesebeli Coinholt faluban a pékséged pultja mögött állsz, és épp egy friss adag péksüteményt rendezel el. Az ajtó nyikorogva kinyílik, és belép Denara, egy ügyes kereskedő, akinek jó szeme van a minőségi árukhoz. Egy gyors étkezés után átcsúsztat a pulton egy csillogó érmét, amely 100 egységet ér.

Elmosolyodsz, elveszed az érmét, és az étkezés végösszegére pillantasz: 88 egység. Ez azt jelenti, hogy 12 egység visszajárót kell adnod.

Denara várakozásteljesen nyújtja feléd a kezét. „Csak a lehető legkevesebb érmét add ide” – mondja mosolyogva. „A pénztárcám már tele van, és nem akarom kockáztatni, hogy elveszítem őket az úton.”

Tudod, hogy több lehetőséged is van. „Visszajáróként Lumis (10 egységet ér), Viras (5 egységet ér) és Zenth (2 egységet ér) áll rendelkezésünkre.”

Gyorsan fejben kiszámolod a lehetőségeket:

  • egy Lumis (1 × 10 egység) + egy Zenth (1 × 2 egység) = összesen 2 érme
  • két Viras (2 × 5 egység) + egy Zenth (1 × 2 egység) = összesen 3 érme
  • hat Zenth (6 × 2 egység) = összesen 6 érme

„A legjobb választás két érme: egy Lumis és egy Zenth” – mondod, és átadod neki a visszajárót.

Denara elmosolyodik, láthatóan elismeréssel. „Mint mindig, most is jól számoltál.”

Utasítások

Határozd meg, hány érmével lehet a legkevesebbet visszaadni egy vásárlónak úgy, hogy az érmék értékeinek összege éppen a visszajáró összeggel legyen egyenlő.

Példák

  • Egy 15-ös összegnél, ha a rendelkezésre álló érmék értékei [1, 5, 10, 25, 100], egy 5-ös és egy 10-es értékű érmét kell visszaadni, azaz [5, 10].
  • Egy 40-es összegnél, ha a rendelkezésre álló érmék értékei [1, 5, 10, 25, 100], egy 5-ös, egy 10-es és egy 25-ös értékű érmét kell visszaadni, azaz [5, 10, 25].
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
JavaScript Exercism

Készen állsz elkezdeni a(z) Pénzváltás feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) JavaScript nyelvet 37 fogalom159 feladat segítségével, valódi emberi mentorálással, mindez ingyen.