Clojure — A Base 10

Feu una funció transforma_a_base_10 que, donada una base b (2 ≤ b ≤ 9),
retorna una altra funció (anomenem-la fret):
(def fret (transforma_a_base_10 b)).

Aquesta funció fret retornada ha de ser tal que espera rebre un dígit d
en base b (0 ≤ d < b) que forma part del nombre, en base b, que volem
expressar en base 10. La crida (fret d) retorna una altra funció que fa
el mateix procés. Tot plegat acaba en cridar aquesta funció retornada
amb -1, aleshores es retornarà el nombre format pels dígits que hem anat
passant successivament a les funcions retornades (el primer és
considerat el dígit de més pes), però expressat en base 10.

Exemple: Volem passar 101011 (en base 2) a base 10 (on 101011₂ = 43₁₀).

Cal fer (def h2 (transforma_a_base_10 2)), i després només cal cridar
successivament les funcions retornades per les crides a h2 amb els
dígits de 101011, acabant amb -1: (((((((h2 1) 0) 1) 0) 1) 1) -1)
retorna 43.

Observacions

- No podeu fer servir cap mena d’estructura de dades, ni cap mena de
  seqüència. Només nombres i funcions.

Informació del problema

Autoria: Jordi Delgado

Generació: 2026-01-25T12:59:56.227Z

© Jutge.org, 2006–2026.
https://jutge.org
