Ver Mensaje Individual
  #24 (permalink)  
Antiguo 21/11/2014, 04:51
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años, 5 meses
Puntos: 49
Respuesta: Petando la pila. Problemas y retos usando recursividad.

Cita:
Iniciado por Pantaláimon Ver Mensaje
¡Hola de nuevo!
Y ahora, ¡A petar la pila!
"Güeno" , el primero ( el segundo aún tengo que entenderlo ):
Código C++:
Ver original
  1. #include <stdio.h>
  2.  
  3. int unsigned comb ( unsigned n , unsigned k ) ;
  4.  
  5. int main ( ) {
  6.   printf ( "%u" , comb (  12 , 5 ) ) ;
  7.   return 0 ;
  8. }
  9.  
  10. int unsigned comb ( unsigned n , unsigned k )  {
  11.     if ( k > n / 2 )
  12.         k = n - k ;
  13.     if ( k >= 1 )  return ( n  * comb (  n - 1 , k - 1 ) / k ) ;
  14.     else
  15.         return 1;
  16. }

Observar que aprovecho las propiedades de los números combinatorios y así si piden como ( 25 , 20 ) calculo su equivalente comb ( 25 , 5 ) que realiza menos operaciones.

¡¡¡Saluditos!!!