Fins a n X44077


Statement
 

pdf   zip

Escriure una funció fins_a_n(f,n) que, donades una funció ff d’un paràmetre i un nombre nn enter positiu, retorna una funció d’un paràmetre tal que per a cada xx, aquesta funció aplica tantes vegades ff com pot, fins a superar el valor d’nn. És a dir, calcularà fk(x)nf^k(x) \leq n on fk+1(x)>nf^{k+1}(x) > n. El valor retornat serà fk(x)f^k(x). Podem suposar que ff és tal que, per a tot xx, f(x)>xf(x) > x. Pels xx tal que x>nx > n, la funció retornarà xx.

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.

Sample session
>>> 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
>>> 
Information
Author
Jordi Delgado
Language
Catalan
Official solutions
Python
User solutions
Python