Sei sulla pagina 1di 2

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERA DE SISTEMAS E INFORMTICA


Escuela Acadmico Profesional de Ingeniera de Sistemas

Algortmica III-Practica3
1. Escriba una funcin recursiva que imprima en forma invertida los
dgitos de un nmero entero.
2. Escriba una funcin recursiva que invierta una cadena de caracteres.
3. Disee una funcin recursiva exponente tal que dada la base y el
exponente como nmeros enteros devuelva su resultado. Validar que
la base ser mayor que cero y el exponente mayor o igual que cero.
4. Programar un algoritmo recursivo que permita sumar los elementos
de un vector.
5. Programe un mtodo recursivo que transforme un nmero expresado
en notacin binaria a un nmero entero.
6. Escriba una definicin recursiva de una funcin que tiene un
parmetro n de tipo entero y que devuelve el n-simo nmero de
Fibonacci. Los nmeros de Fibonacci se definen de la siguiente
manera:
7. La forma para calcular cuantas maneras diferentes tengo para elegir r
cosas distintas de un conjunto de n cosas es: C(n,r) = n! (r!*(n-r)!)
Donde la funcin factorial se define como n! = n *(n-1)*(n-2)**2*1
.Descubra una versin recursiva de la frmula anterior y escriba una
funcin recursiva que calcule el valor de dicha frmula.
8. Torres de Hanoi
Es un juego oriental que consta de tres columnas llamadas origen,
destino y auxiliar y una serie de discos de distintos tamaos. Los
discos estn colocados de mayor a menor tamao en la columna

origen. El juego consiste en pasar todos los discos a la columna


destino y dejarlos como estaban de mayor a menor. (el ms grande
en la base, el ms pequeo arriba)
Las reglas del juego son las siguientes:

Slo se puede mover un disco cada vez.

Para cambiar los discos de lugar se pueden usar las tres

columnas.

Nunca deber quedar un disco grande sobre un disco pequeo.

El problema de las torres de Hanoi se puede resolver de forma muy


sencilla usando la recursividad y la tcnica divide y vencers. Para
ello basta con observar que si slo hay un disco (caso base),
entonces se lleva directamente de la varilla origen a la
varilla destino. Si hay que llevar n>1 (caso general) discos
desde origen a destino entonces:

Se llevan n-1 discos de la varilla origen a la auxiliar.


Se lleva un solo disco (el que queda) de la varilla origen a la destino
Se traen los n-1 discos de la varilla auxiliar a la destino.

9. Ejecuta el mtodo anterior para distinto nmero de discos.


10.

Escribe un mtodo recursivo que calcule el nmero de


movimientos necesarios para mover n discos.

Potrebbero piacerti anche