miércoles, 22 de octubre de 2008

Problema Robot P1

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;
}

No hay comentarios: