Hola,
llevo unos dias con este problema y no soy capaz de sacarlo. Tengo que hacer un programa en el cual se calculen dos numeros, uno de ellos es fijo o constante y el otro viene dado por una sucesion, y una vez calculados, compruebe que la diferencia por aproximacion al numero constante desde el calculado este dentro de un valor introducido por teclado. Hasta ahi todo claro y facil de hacer, pero mi problema viene cuando he de comparar la diferencia entre los valores. La diferencia ha de ser de 0.1 y ahi esta el problema, pues ese numero es un numero real y por tanto tendre que usar Doubles o Long quedando para el ordenador como 0.100000 pero claro, esa es la diferencia teorica, pero la real siempre sera 0.1xxxxx y por tanto jamas se cumplira que se acerque a esa diferencia de 0.1 introducida por teclado.
Por si no queda claro, tambien os dejo el codigo que tengo por ahora:
.............
int main(){
double diferencia, aureo, resta, calculo;
int n;
cout << "Introduce el valor de la diferencia en la aproximacion: ";
cin >> diferencia;
calculo = 0;
n = 0;
resta=0;
aureo = (1 + sqrt(5.0))/2.0;
while(resta != diferencia){
calculo=(fibonacci(n+1))/(fibonacci(n));
resta=aureo-calculo;
n++;
}
cout << "RESULTADO = " << n-1;
cout << "nn";
system("pause");
}
Donde aureo es el numero constante y calculo el numero calculado por aproximacion mediante la serie de fibonacci.
Gracias por adelantado