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.