Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/04/2012, 03:02
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Problema en c++

El problema puede ser cuestión de tipos y de las operaciones.

Por ejemplo: Si n=2 : (n-1)/n => (2-1)/2 = 0

Pensarás que el resultado debería ser 0.5, pero como n es un entero sin signo, se realiza una división entera. Para hacer la división como tu quieres tienes que convertir el tipo de dato.

Código C++:
Ver original
  1. double leg(unsigned n, double x){
  2.     if (n==0) return 1;
  3.     if (n==1) return x;
  4.  
  5.  
  6.     double le0=1,le1=x, le2,aux;    
  7.  
  8.     for (unsigned int i=2; i<=n; i=i+1){
  9.         le2=((double)(2*n-1)/n)*x*le1;
  10.         aux=((double)(n-1)/n)*le0;
  11.         le2=le2-aux;
  12.         le0=le1; le1=le2;
  13.     }
  14.     return le2;
  15. }