Successió de múltiples

Donats a i b, dos enters tal que a>0 i 0< b< 10, es defineix la sèrie matemàtica següent:

\begin{array}{l} x_1 = a \\ x_i = \begin{cases} 2x_{i-1}, & \text{si $x_{i-1}$ és múltiple de b o acaba amb la xifra b} \\ 3x_{i-1} +b, & \text{si $x_{i-1}$ no és méltiple de b i no acaba amb la xifra b}\\ \end{cases}` \end{array}
  1. Dissenyeu la funció suma_termes_1(a, b, n) que retorna la suma dels n primers termes d’aquesta sèrie.

    Desa la funció al fitxer serie_numerica.py. La funció ha de passar el següent doctest:

    >>> suma_termes_1(1, 2, 10)
    59038
    >>> suma_termes_1(4, 3, 20)
    7864309
    >>> suma_termes_1(4, 5, 5)
    774
    

    Nota

    Pots descarregar el fitxer amb tests suma_termes_1.txt

  2. Dissenyeu la funció suma_termes_2(a, b, xmax) que retorna la suma dels termes d’aquesta sèrie, inferiors a xmax.

    Desa la funció al fitxer serie_multiples.py. La funció ha de passar el següent doctest:

    >>> suma_termes_2(1, 2, 40000)
    59038
    >>> suma_termes_2(4, 3, 4000000)
    7864309
    >>> suma_termes_2(4, 5, 600)
    774
    

    Nota

    Pots descarregar el fitxer amb tests suma_termes_2.txt

Solució

Disposeu de solucions al fitxer serie_multiples.py