Buen dia a todos , la serie de Euler: sqrt (6*sumatoria k=1,k<=n de 1/(k^2)) esto es lo que se supone debe generar el programa pero solo arroja valores de 1 y un número pi incorrecto, ¿La estaré regando en algo? Ayuda por favooor
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main (){
int k,x,x2;
double pi,op=0,sum=0,num=0;
cout << "\t*****Hola, bienvenido al programa Serie de Euler*****\n\n" ;
start :
cout << "Ingresa el numero de cifras significativas:\t\n" << endl;
cin >> k ;
cout << "\nElegiste el numero:\t" << k << "\nGracias" << endl;
for(x=1; x<=k; x++) {
x2=x*x ;
op = 1/x2 ;
sum = sum + op ;
cout << "El resultado de evaluar a\t" << x << "\tes: " << op << endl ;
cout << "La suma es\t" << sum << endl ;
}
pi = sqrt(6 * sum) ;
cout << "\nEl resultado de pi es: " << pi << endl ;
goto start ;
return 0;
}
Asñi por encima:
op = 1/x2;
x2 es int, no double. El resultado de 1/x2 es también entero, con lo que quedará 0 o 1 ahí siempre.
Puedes hacer x2 double para solucionarlo. Ten en cuenta que toda operación en la que solo haya enteros, dará un resultado entero también.
Ya que este foro no tiene botón de agradecimiento, ocupo un espacio para hacerlo.... Gracias bro me sirvió el consejo, hice double todo para no tener problemas. Duda resuelta
solo por sacar de nuevo a la luz un tema viejo (y hacer spam XD)... calcular pi a miles de decimales (https://foro.elhacker.net/buscador-t412338.0.html)