Si estás en primero de Grado en Ingeniería Informática, este post es tu salvavidas. Hemos recopilado 10 ejercicios clásicos de exámenes de la UPM, UPC, UGR y más, con soluciones optimizadas.
1. El Factorial Recursivo (UPM)
Enunciado: Calcula el factorial de un número $n!$ usando recursividad.
if n == 0: return 1
return n * factorial(n - 1)
2. Criba de Eratóstenes Simplificada (UPC)
Enunciado: Devuelve una lista de números primos hasta un límite $N$.
res = []
for i in range(2, n + 1):
if all(i % d != 0 for d in range(2, int(i**0.5) + 1)):
res.append(i)
return res
3. Verificador de Palíndromos (UGR)
Enunciado: Detecta si una frase es palíndroma ignorando espacios.
s = s.lower().replace(" ", "")
return s == s[::-1]
4. Frecuencia de Palabras (UV)
Enunciado: Cuenta cuántas veces aparece cada palabra en un texto.
palabras = texto.split()
dic = {}
for p in palabras:
dic[p] = dic.get(p, 0) + 1
return dic
5. Búsqueda Binaria (UC3M)
Enunciado: Implementa la búsqueda eficiente en listas ordenadas.
izq, der = 0, len(lista) - 1
while izq <= der:
m = (izq + der) // 2
if lista[m] == x: return m
if lista[m] < x: izq = m + 1
else: der = m - 1
return -1
6. Transposición de Matrices (UMA)
Enunciado: Dada una matriz, devuelve su transpuesta.
return [[m[j][i] for j in range(len(m))] for i in range(len(m[0]))]
7. Sucesión de Fibonacci (US)
Enunciado: Genera los primeros $n$ números de la serie.
a, b = 0, 1
for _ in range(n):
print(a)
a, b = b, a + b
8. Filtro de Mayores de Edad (UAM)
Enunciado: Filtra un diccionario de personas por edad > 18.
return {k: v for k, v in personas.items() if v >= 18}
9. Validador de Anagramas (UA)
Enunciado: Determina si dos palabras contienen las mismas letras.
return sorted(p1) == sorted(p2)
10. Inversión de Cadenas (URJC)
Enunciado: Invierte una cadena sin usar [::-1].
res = ""
for char in s: res = char + res
return res
No hay comentarios:
Publicar un comentario