Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/02/2005, 14:41
Riskbreaker
 
Fecha de Ingreso: enero-2005
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Muxas gracias de nuevo stock!! Ves? la idea la tenía, pero aunque parezca de tontos, no sabía cómo escribir la instrucción "res *= i;". A ver, que ahora llega la segunda parte del problema, si tu o alguien fuera tan amable... Me explico: el problema te pide que saques los factoriales de todos los números que se encuentren entre 2 que tu introduzcas por teclado (es decir, si escribes 7 y 3 te tiene que mostrar el factorial de 7, el de 6,5,4 y 3) usando para ello una función a la que hay que realizarle llamadas. Como stock me ayudo con el pequeño problema del principio me embale y consegui sacar todo esto (pa q no se diga q no lo he intentao :P):

import java.io.* ;

public class ejercicio33
{
int factorial (int n)
{
if (n==0)
return 1;
else


n=n*(factorial(n-1));
return n;
}
public static void main (String [] args ) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader (System.in));
int x;
int y;
int resultado=0;
int contador;

String unaLinea;
System.out.println("Introduce un entero: ");
unaLinea = in.readLine();
x = Integer.parseInt(unaLinea);

String otraLinea;
System.out.println("Introduce un entero: ");
otraLinea = in.readLine();
y = Integer.parseInt(unaLinea);

contador=x;

for(contador=x;contador>=y;contador--)
{
ejercicio33 f = new ejercicio33 ();
resultado= f.factorial(x);

System.out.println("El factorial de "+x+" es " +resultado);

}
while (x>=contador)
{
resultado=resultado/x;
x=x-1;
System.out.println("El factorial de "+x+" es " +resultado);
}


}}


El problema es que si le meto como número 7 y 3, por ejemplo, sólo me muestra por pantalla las tres primeras coincidencias (7,6 y 5). ¿Sabe alguien a qué puede deberse esto?. Seguro que es algún detallito que no he puesto bien pero es que estoy por tirar el ordenador por la ventana porque no lo consigo sacar

Muxas gracias x adelantado!