def factorial(n): """ Donat un enter n>=0, retorna n!, és a dir n*(n-1)*(n-2)*...*1 (Nota: per definició, 0! val 1) """ if n == 0: return 1 else: f = factorial(n-1) return n * f def compta_vocals(s): """ Retorna el nombre de vocals majúscules que conté s """ if s == '': return 0 else: if s[0] in 'AEIOU': c = 1 else: c = 0 n = compta_vocals(s[1:]) return c + n def index_max(llista): """ Retorna l'índex de l'element més gran de la llista """ if len(llista) == 1: return 0 else: iaux = index_max(llista[:-1]) if llista[-1] > llista[iaux]: iaux = len(llista) - 1 return iaux def dos_repetits(llista): """ Donada una llista, retorna True sii la llista conté dos elements consecutius iguals. >>> dos_repetits([1,3,5,2,3,3,6]) True >>> dos_repetits(['hola','que','tal','hola']) False """ if len(llista) < 2: return False if llista[0] == llista[1]: return True return dos_repetits(llista[1:]) def eleva(a, b): """ Calcula a^b utilitzant la fórmula a^0 = 1 a^b = a^(b-1) * a, si b > 0 """ pass