
24/04/2006, 09:24
|
 | | | Fecha de Ingreso: octubre-2005 Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 19 años, 4 meses Puntos: 7 | |
Hola aksha69, estos algoritmos que te pongo a continuación le darán un poco de trabajo al garbage collector de java, pero me gusta más hacer las cosas recursivas... siempre que se pueda, claro.
public boolean esPalindromo(String s) {
if (s.length() <= 1)
return true;
else if (s.charAt(0) == s.charAt(s.length() - 1))
return esPalindromo(s.substring(1, s.length() - 1));
return false;
}
Y para el factorial:
public int factorial(int numero) {
if (numero == 0)
return 1;
return numero * factorial(numero - 1);
}
Las soluciones iterativas son muy eficientes, pero las soluciones recursivas dividen el problema en pequeños problemas. Divide y vencerás...
Solo recordarte que el factorial crece muy rápido... así que es posible que necesites usar el tipo de dato long en lugar de int... no te asustes si te da problemas a la hora de calcular números no tan grandes.
__________________ El último TipdaR
Última edición por Tipdar; 24/04/2006 a las 12:52 |