Hola a todos y GRACIAS de antemano. Estoy empezando con C en la facultad, y no me queda claro si el siguiente ejemplo no hace nada en sí, o si falta declarar y darle valor a las variables, o que demonios necesita para que entregue el factorial de un número de forma recursiva e iterativa.
También incluyo dos ejemplos individuales que me dan error al compilar.
Ejemplo doble (iterativo/recursivo):
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#define VALOR 5
#define FACT 120
using namespace std;
int main(int argc, char *argv[])
{
int fact_i(int v)
{
int r=1, i=0;
while(i<=v)
{
r=r*1;
i=i+1;
}
return r;
}
int fact_r (int v)
{
if(v==0) return 1;
else return v*fact_r(v-1);
}
main() {
int r, valor=VALOR;
if((r=fact_i(valor)) !=fact_r(valor)) printf("Codificacion erronea!!.n");
else if(r==FACT) printf("Codificacion correcta.n");
else printf("Algo falla!!.n");
}
system("PAUSE");
return EXIT_SUCCESS;
}
EJEMPLO RECURSIVO SIMPLE:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int factorial(int n) {
if ((n==0)||(n==1))
return(1);
else
return(n*factorial(n-1));
{
system("PAUSE");
return EXIT_SUCCESS;
}
EJEMPLO ITERATIVO SIMPLE:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int factorial(int n) {
int i, fact=1;
for (i=2; i<=n; i++)
fact=fact*i;
return(fact);
}
system("PAUSE");
return EXIT_SUCCESS;
}