Hola! Pues tengo una pequeña duda con mi código, porque no me da el resultado deseado :xD esta casi perfecto, solo que en ves de 5.33333 me da 3.33333. El problema está así:
(http://i59.tinypic.com/8yw4xx.png)
Lo hice conforme está esa ecuación a papel y realizándolo por pasos, el resultado da 5.33333. Les presento mi código:
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <math.h>
using namespace std;
//FUNCION SUMATORIA
float sigma(float a, float b){
float division;
float suma = 0;
float operacion = 1;
float i = 1;
//ELEVAMOS, SACAMOS FACTORIAL, DIVIDIMOS Y SUMAMOS PARA OBTENER EL RESULTADO
while(i <= b){
a = pow (a,i);
for (int z = 1; i <= b; z++){
operacion = operacion*z;
division = a / operacion;
suma = division+suma;
i++;
}
}
return suma;
}
int x; //VARIABLES GLOBALES DE TIPO ENTERO
int n;
int main(){
gotoxy(6,4); cprintf("Yo puedo resolver sigma");
textcolor(15);
gotoxy(24,6); cprintf("Ingresa X: ");
cin >> x;
textcolor(15);
gotoxy(24,8); cprintf("Ingresa N: ");
cin >> n;
textcolor(15);
gotoxy(24,10); cprintf("El resultado es: "); cout << sigma(x, n);
getch();
return 0;
}
En cada vuelta de la línea 16 a la línea 21 va aumentando todas las operaciones, x elevado a la i, factorial de i!, hecho esto divide y por último suma, tal y como lo describe el problema, pero el resultado debe ser 5.33333 y mi programa da 3.33333 :xD si pueden ver mi código y ver cual es el problema, les agradecería mucho si me brindaran la solución porfavor! Muchísimas gracias por leer!
#include <iostream>
#include <cmath>
int factorial(int ingreso)
{
int regreso = 1;
for (int i=0; i<ingreso;i++)
{
regreso *= (ingreso-i);
}
return regreso;
}
double sumatoria_simple(int desde, int hasta, int x)
{
double resultado;
for (; desde<=hasta;desde++)
{
resultado = resultado + (std::pow(x,desde)/(float)factorial(desde));
}
return resultado;
}
int main()
{
std::cout << sumatoria_simple(1,5,6) << std::endl;
}
Eso me da en papel segun la ecuacion que vos pasaste.. obviamente, lo probe con un solo ejemplo a las apuradas y acotado al caso tuyo, no es generico.. no se que valor le diste a x, i y n..
Probalo.. esta hecho asi nomas..
Muchas gracias mi amigo someRandomCode, lo modifique en algunas cositas hasta que me dio el resultado!! ;-)
No hay problema, si te soluciono, por favor marca el thread como resuelto! :)