#include <stdio.h>#include <math.h>#include <stdlib.h>int main(int argc, char **argv){ int n, i, j, d; float e, k; n= 1; for(j= 1 ; j<= 10 ; j++){ d= j; n++; <---- la "n" también va a tener el mismo valor que la variable "J". if(j==1){ i= n-1; k= 1/i + 1/d; <---- aquí la primera suma de 1/0 + 1/1 e= k; } if(n==j){ d= d+1; <---- d= j osea le sumamos 1 e= e+1/d; <---- 1/d es lo mismo que 1/2 } } printf("\nEl valor de e: %f", e); return 0;}
Código: [Seleccionar]k= 1/i + 1/d; <---- aquí la primera suma de 1/0 + 1/1
k= 1/i + 1/d; <---- aquí la primera suma de 1/0 + 1/1
Cita de: r1ghtz0 en Junio 03, 2013, 01:00:45 amCódigo: [Seleccionar]k= 1/i + 1/d; <---- aquí la primera suma de 1/0 + 1/1Estás haciendo divisiones enteras.
int main(int argc, char **argv){ float e, k, n, i, j, d; n= 2.0; for(j= 2.0 ; j<= 10.0 ; j++){ d= j; n++; if(j==2.0){ i= n-1.0; k= 1.0/i + 1.0/d; e= k; } if(n==j){ d= d+1.0; e= e+1.0/d; } } printf("\nEl valor de e: %f", e); return 0;}
int main(...){ const float ITERACIONES = 10.0; float e = 0; for (float i = 1; i <= ITERACIONES; i++) { e += 1.0 / i; }}
#include <stdio.h>int main(int argc, char **argv){ float e= 0, i; for(i= 1 ; i<= 8 ; i++){ e= e+1/i; } printf("\nEl valor de >e< es: %f", e); return 0;}
#include <stdio.h>#include <math.h>#include <stdlib.h>int main(int argc, char **argv){ float e, j, d; for(j= 1 ; j<= 7 ; j++){ d= j; if(j==1){ e= e + 1/j; } if(d==j){ d= d+1; e= e+1/d; } } printf("\nEl valor de e: %f", e); return 0;}
De todas maneras, esa serie no converge a e, para eso tendrías que dividir entre el factorial del denominador.
#include <iostream>#include <stdlib.h>#include <stdio.h>using namespace std;double factorial(int n){ double aux=1; for(int i = 2; i<=n ; i++){ aux *= i; } return aux;}double e(int n){ double sum = 0; for(int i = 0; i < n; i++){ sum += 1/factorial(i); } return sum;}int main (){ int n; cout <<"Cuantos terminos de precision desea: "; cin >> n; printf("e = %f",e(n)); }