1. Triatge de sumes parcials (4 punts)¶
Avís
Per a resoldre aquest exercici no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar tots els elements d’un iterador.
Al mòdul cerca (fitxer cerca.py), deseu la següent funció, que podeu implementar com un generador o bé utilitzant el mòdul itertools i les funcions predefinides de python:
- cerca.cerca_suma(it)¶
- Paràmetres:
it – iterador sobre una seqüència d’enters \(S=\{x_i\}\)
- Retorna:
iterador sobre la seqüència de valors de \(S\) que coincideixen amb la suma de tots els valors anteriors, és a dir, aquells valors que compleixen que \(x_i = \sum_{k=0}^{i-1} x_k\)
- Tipus de retorn:
iterador d’enters (
int)
Per exemple:
>>> it = iter([1, 2, 3, 4, 10, 20, -5, 35, 88])
>>> it2 = cerca_suma(it)
>>> next(it2)
3
>>> for v in it2:
... print(v, end=",")
10,20,35,
Disposeu d’un joc de proves més complet en el fitxer tests-cerca.txt.