Escriure una funció fins_a_n(f,n) que, donades una funció f d’un paràmetre i un nombre n enter positiu, retorna una funció d’un paràmetre tal que per a cada x, aquesta funció aplica tantes vegades f com pot, fins a superar el valor d’n. És a dir, calcularà fk(x) ≤ n on fk+1(x) > n. El valor retornat serà fk(x). Podem suposar que f és tal que, per a tot x, f(x) > x. Pels x tal que x > n, la funció retornarà x.
Entrada
La funció té dos paràmetres, una funció amb les propietats requerides per l’enunciat i un nombre enter positiu.
Observacions
Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.
>>> fins_a_n(lambda x: 1+x, 5)(3) 5 >>> fins_a_n(lambda x: 1+x, 5)(7) 7 >>> fins_a_n(lambda x: 1+x, 5)(0) 5 >>> fins_a_n(lambda x: x*x, 10)(2) 4 >>> fins_a_n(lambda x: x*x, 20)(2) 16 >>> fins_a_n(lambda x: x*x, 20)(20) 20 >>> fins_a_n(lambda x: x*x, 20)(21) 21 >>>