miércoles, 18 de febrero de 2009

Torres De Hanoi


Consiste en tres varillas verticales y un número indeterminado de discos que determinarán la complejidad de la solución. No hay dos discos iguales, están colocados de mayor a menor en la primera varilla ascendentemente, y no se puede colocar ningún disco mayor sobre uno menor a él en ningún momento.

Algoritmo Torres De Hanoi:

Siendo actual el estado inicial de las torres y final el estado al que se quiere llegar, el algoritmo es el siguiente:
solucionar ( actual, final )
{
sea máximo el número de discos total
sea destino el sitio final de máximo
sea disco = máximo
repita
mientras disco > 0 haga
si disco ya está en destino,
o bien, mover disco a destino tiene éxito entonces
si disco = máximo entonces
decremente máximo en 1 -si máximo = 0 entonces
termine // solución lista
fin-si
sea destino el sitio final de máximo
fin-si
si_no
sea destino el sitio distinto de destino y del sitio en donde está disco
fin-si
decremente disco en 1
fin-mientras
sean p y q los sitios distintos de destino
sea disco el menor de los discos de los topes de p y q
sea destino el sitio entre p y q con el mayor tope
fin-repita ´
}
Referencias bibliográficas:
Graham, R. L., Knuth, D., Patashnik, O. Concrete Mathematics: A Foundation for Computer Science. Second Edition. Addison-Wesley. 1994.

Algoritmo Factorial En Java

import javax.swing.JOptionPane;

public class Factorial
{
private int x;
private int num;

public Factorial()
{
x=1;
num =0;
factorial();
}
public static void main (String args[])
{
Factorial x= new Factorial();
}
public void factorial()
{
num= Integer.parseInt(JOptionPane.showInputDialog("Digite el numero"));
for (int i=num;i>0; i--)
{
x=x*i;
}
JOptionPane.showMessageDialog(null,"El resultado es:"+x);
}
}

miércoles, 11 de febrero de 2009

Algoritmo de factorial

Inicio

var: fact,resp;

principal

Escribir("Digite el número al que desea sacarle el factorial");
Leer(fact);
resp=1
si(fact=0);
escribir("fact=1");
sino
{
while(fact> o =1)
resp=resp*fact
fact=fact - 1;
}
escribir("la respuesta del factorial es="+resp)