Problema que calcúla el número de caminos posibles para llegar en una matriz desde el punto 1,1 hasta el extremo opuesto.
El robot sólo puede ir dos posiciones hacia abajo o tres a la derecha.
Descripción:
Caminos para un Robot. Partiendo de una matriz de n*m , un robot situado en dicha matriz puede hacer diferentes movimientos. Los movimientos permitidos son tres posiciones a la derecha o dos posiciones abajo. Si el origen del robot es siempre la casilla de más arriba a la izquierda, y tiene que llegar a la de más abajo a la derecha, implemente un algoritmo basado en la recursividad que muestre todos los caminos posibles que puede realizar el robot.
Solución:
private static int robot(int n, int m) {
int res;
if((n==4 && m==1)||(n==1 && m==3))
res=1;
else if(n==1 && m>2)
res=robot(n,m-2);
else if (m==1 && n>3)
res=robot(n-3,m);
else if(n<4 || m<3)
res=0;
else
res=robot(n-3,m)+robot(n,m-2);
return res;
}
miércoles, 22 de octubre de 2008
Suscribirse a:
Enviar comentarios (Atom)

No hay comentarios:
Publicar un comentario