Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/05/2016, 09:51
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: Suma Recursiva

Tienes opciones para elegir. Lo importante a la hora de tirar por recursividad es tener claro qué se ha de ejecutar en cada iteración... bueno, realmente esto es importante en cualquier caso :)

1. La función lleva la cuenta de la suma y al final imprime el resultado... mientras tanto va acumulando números al total y a la consola:

Código C++:
Ver original
  1. void contador(int actual, int fin, int suma)
  2. {
  3.   std::cout << actual;
  4.   suma += actual;
  5.  
  6.   if( actual != fin )
  7.   {
  8.     std::cout << "+";
  9.     contador(actual+1,fin,suma);
  10.   }
  11.   else
  12.   {
  13.     std::cout << "=" << suma;
  14.   }
  15. }
  16.  
  17. int main()
  18. {
  19.   contador(4,8,0);
  20. }

2. La función recursiva retorna parciales y es la primera función la que tiene el resultado final:

Código C++:
Ver original
  1. int contador1(int actual, int fin)
  2. {
  3.   int parcial = actual;
  4.   std::cout << actual;
  5.  
  6.   if( actual != fin )
  7.   {
  8.     std::cout << "+";
  9.     parcial += contador1(actual+1,fin);
  10.   }
  11.  
  12.   return parcial;
  13. }
  14.  
  15. void contador(int actual, int fin)
  16. {
  17.   int total = contador1(actual,fin);
  18.   std::cout << "=" << total;
  19. }
  20.  
  21. int main()
  22. {
  23.   contador(4,8);
  24. }

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.