Recursion


Recursion

Most of the algorithms can be implemented using an iterative method. However, some algorithms can be easily implemented using recursion. The method of recursion consists on solving a problem by creating smaller problem of the same type. For instance, suppose you want to build a four floor house. Using recursion, the problem can be reduced to build a three floor house first, and then, add an extra floor. A three floor house problem can be reduced to build a two floor house first, and then, add an extra floor, see the code bellow. In programming, recursion is implemented using a function that calls itself until a condition changes.
La mayoría de los algoritmos pueden ser implementados usando un método iterativo. Sin embargo, algunos algoritmos pueden implementarse fácilmente usando la recursión. El método de recursión consiste en resolver un problema creando un problema más pequeño del mismo tipo. Por ejemplo, suponga que usted quiere construir una casa de cuatro pisos. Cuando se usa la recursión, el problema se puede reducir a primero construir una casa de tres pisos, y entonces, agregar un piso extra. Un problema de una casa de tres pisos puede reducirse a primero construir una casa de dos pisos, y entonces, agregar un piso extra, vea la el código de abajo. En programación, la recursión es implementada creando una función que se llama así misma hasta que una condición cambia.

Program.cpp
void Program::BuildHouse(int floorCount)
{
     if (floorCount > 1) BuildHouse(floorCount-1) + oneFloor;
     //____________________ Build a one floor house
     ...
}

Problem 1
Write a program called MiFactorial to compute the factorial of a number using recursion. Observe that the factorial of 5 is equal to 5 times the factorial of 4; the factorial of 4 is equal to 4 times the factorial of 3, and so on.
Escriba un programa llamado MiFactorial para calular el factorial de un número usando la recursión. Observe que el factorial de 5 es igual a 5 veces el factorial de 4; el factorial de 4 es igual a 4 veces el factorial de 3, y así sucesicamente.

MiFactorial

MiFactorial.h
#pragma once //______________________________________ MiFactorial.h
#include "resource.h"

class MiFactorial: public Win::Dialog
{
public:
     MiFactorial()
     {
     }
     ~MiFactorial()
     {
     }
     unsigned int Factorial(unsigned int number);
protected:
     ...
};

MiFactorial.cpp
void MiFactorial::Window_Open(Win::Event& e)
{
}

void MiFactorial::tbxNumber_Change(Win::Event& e)
{
     const int number = tbxNumber.IntValue;
     tbxResult.IntValue = Factorial(number);
}

unsigned int MiFactorial::Factorial(unsigned int number)
{
     ...
}

© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home