0votos

Suma de pares en un rango de 2 números en Haskell

por josejuan hace 3 años

No entiendo eso de "suma de pares" y, no habiendo restricción, basta sumar directamente.

Diseñar un programa, que calcule y muestre la suma de los números que hay entre dos números

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-- la ineficiente de coste O(n) 
sumaRango' a b = sum [a..b] 
 
-- la eficiente de coste O(1) 
sumaRango a b = (a + b) * (b - a + 1) `div` 2 
 
 
 
-- verificación de que se comportan igual 
test a b | a > b     = test b a 
         | otherwise = sumaRango a b == sumaRango' a b 
 
{- 
 
> quickCheckWith (stdArgs { maxSuccess = 1000000 }) test  
+++ OK, passed 1000000 tests. 
 
-} 
4 comentarios
0votos

Escrito por Diego Salazar hace 3 años

No hay mucho que analizar. Es solo pedir 2 números y hallar la suma de todos los números pares que existen entre esos 2 números.
Si no está bien especificado en el título, el enunciado lo deja muy claro.
1votos

Escrito por josejuan hace 3 años

Diego, el título dice "Suma de pares en un rango de 2 números".

He indicado que yo no entiendo eso de "Suma de pares" ¿que parejas hay que sumar?, por ejemplo, para mí ese título puede implicar el problema de sumar las posiciones impares con las pares, por ejemplo (hay muchas variantes dado ese título), dado:
   3, 4, 5, 6, 7, 8, 9

Calcular la "Suma de pares en un rango de 2 números" (3 al 9 en el ejemplo)
   3  4, 5  6, 7  8, 9
     |     |     |
     7    11    15

Ese sí sería "Sumar pares" (sumar parejas) y, siempre en mi opinión, el título reflejaría el problema a resolver (aunque no el tuyo).

Pero vamos, únicamente he mostrado que yo no entendía (ni entiendo) eso de "pares".

En el enunciado (más detallado) sí indicas claramente que el problema es "suma de los números que hay entre dos números" que siempre en mi opinión, habría sido un título más apropiado ;)
0votos

Escrito por Diego Salazar hace 3 años

Bueno debo entender que lo que me intentas decir es que "no entiendes", porque el título está "mal", al no especificar, y seguro tienes razón, pero lo hice para resumir. De no existir la opción del enunciado, obiamente el título sería, el que tú indicas.
Tú sabes que en esta web yo puedo poner hasta "ayuda", "problema", "desafío", etc. Pero el título creo yo, al menos en esta web, no es necesariamente para explicar el problema; para eso está el enunciado en el cual creo lo dejé bastante entendible. Igual gracias por tu comentario
0votos

Escrito por Diego Salazar hace 3 años

De hecho acabo de fijarme en mi enunciado; dice exactamente lo que tú propones.

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.