Вы находитесь на странице: 1из 5

Ejercicios

1. Implementar un programa que calcule el factorial de un número, utilizar recursividad.

#include <iostream>
#include<conio.h>
using namespace std;
int p;

int factorial(int );
void ingreso(int );
int factorial(int);

int main() {

ingreso(p);
factorial(p);
getch();
}

void ingreso(int p){


cout <<"Por favor ingrese su numero:"<<endl;
cin >> p; cout <<"el resultado es: "<<factorial(p);
}

int factorial(int n){


if(n==0){
return(1);
}
else {
return(n*factorial(n-1));
}
}

2. Realice una función recursiva que sume los primeros “n” enteros positivos.

#include<iostream>
#include<conio.h>
using namespace std;

//Prototipo de Función
int sumar(int n);

int main(){
int numero;

//Pedimos un numero hasta que sea entero positivo numero > 0


do{
cout<<"Digite un numero: ";
cin>>numero;
}while(numero<=0);

//Mandamos llamar a la funcion recursiva sumar


cout<<"La suma es: "<<sumar(numero)<<endl;

getch();
return 0;
}

//Definición de Función
int sumar(int n){
int suma=0;

if(n==1){//Caso base
suma = 1;
}
else{//Caso general
suma = n + sumar(n-1);
}

return suma;
}

3. Realice una función recursiva para la serie Fibonacci La serie de Fibonacci está formada por la
secuencia de números: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34...

#include<iostream>
#include<conio.h>
using namespace std;

int fibonacci(int n);

int main(){
int nElementos;

//Pedimos un numero entero positivo


do{
cout<<"Digite el numero de elementos: ";
cin>>nElementos;
}while(nElementos <= 0);

//Mandamos llamar a la funcion pero de forma iterativa para imprimir todos


los elementos
cout<<"Serie Fibonacci: ";
for(int i=0;i<nElementos;i++){
cout<<fibonacci(i)<<" , ";
}

getch();
return 0;
}

int fibonacci(int n){


if(n<2){//Caso base
return n;
}
else{//Caso general
return fibonacci(n-1)+fibonacci(n-2);
}
}

4. Escriba una función recursiva que calcule un número elevado a una potencia entera mayor o
igual que cero: x^y.

#include<iostream>
#include<conio.h>
using namespace std;

int potencia(int,int);

int main(){
int base,exponente;

//Pedimos los datos al usuario


cout<<"Digite numero base: ";
cin>>base;
cout<<"Digite exponente: ";
cin>>exponente;

//Mostramos el resultado
cout<<"\nResultado: "<<potencia(base,exponente)<<endl;

getch();
return 0;
}

int potencia(int x,int y){


int pot;
if(y==1){//Caso base
pot = x;
}
else{//Caso general
pot = x*potencia(x,y-1);
}
return pot;
}

5. Escriba una función recursiva que permita invertir un número Ejemplo: Entrada:123 Salida:321

#include <iostream>
#include<conio.h>
using namespace std;
unsigned leerDato();
void inverso(unsigned);

int main() {
cout << "Invertir un número." << endl;
unsigned n =leerDato();
inverso(n);
return 0;
}

unsigned leerDato(){
unsigned res;
cout << "Introduce número: ";
cin >> res;
return res;
}

void inverso (unsigned n){


if(n == 0){
cout << " ";
}else{
cout << n%10;
inverso(unsigned(n/10));
}
}

6. Escriba una función recursiva que permita mostrar el producto de dos números.

#include <iostream>
#include<conio.h>
using namespace std;
void ingreso(int, int);
int producto(int, int);

int main()
{
int n1, n2;
ingreso(n1,n2);

getch();
return 0;

void ingreso(int n1, int n2 )


{
int p;
cout << "Introduzca primer numero: ";
cin >> n1;
cout << "Introduzca segundo numero: ";
cin >> n2;
p=producto(n1,n2);
cout << "producto: " << p << endl;
}

int producto(int a, int b)


{
if(a==0 or b==0)
return 0;
else
{
return a+producto(a,b-1);
}
}

Вам также может понравиться