Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/05/2015, 00:21
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Ejercicio de suma C++

* La función recorre el intervalo -20<=i<=n, con un salto en i=-1. Tu estás haciendo el intervalo -20<=i<-1. Queda claro que no estás cubriendo el mismo rango

* La función es un sumatorio, es decir, hay que acumular los resultados parciales. Sin embargo tu ecuación: s = n*(i/(i+1)^2) no acumula el valor de 's' en cada iteración, sino que los valores previos se pierden

* El símbolo '^' se usa para realizar una operación XOR, dudo muchísimo que una operación XOR pueda ser equivalente al cálculo de una potencia.

* La ecuación que te han puesto únicamente usa 'n' como límite del sumatorio, en ningún caso forma parte de la ecuación... tu ecuación, en cambio, empieza incluyendo el valor de 'n'

* ¿Por qué has abierto una llave después del cin? Abrir llaves puede ser útil en determinados códigos pero me da que no sabes ni por qué lo has hecho.

Y, para terminar, si te fijas la ecuación es una división en la que el divisor va a ser SIEMPRE mayor que el denominador, luego el valor absoluto del resultado de cada iteración va a ser SIEMPRE menor que 1, es decir, "0.XXXXX". "unsigned long long int"... si bien es cierto que puede almacenar números enormes resulta que es totalmente inutil en tu caso: No solo no almacenas números enormes sino que además la clave son los decimales, detalle que el tipo elegido no es capaz de gestionar. Deberías plantearte usar float o double, con preferencia sobre este último.

Un saludo.