Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Kougami en 6 Octubre 2017, 17:52 PM

Título: Factorial
Publicado por: Kougami en 6 Octubre 2017, 17:52 PM
Buenas, tengo un problema con el siguiente codigo:

Código (java) [Seleccionar]

package factorial;

public class Factorial {

public static int factorial (int n) {
int fact = 1;
if (n < 0) {
fact = 0;
}
else if ( n == 0){
fact = 1;
}
else {
fact = fact * n;
}
return fact;
}

public static int combinatorio (int n, int k) {
int combi = factorial (n) / (factorial(k) * factorial(n-k));
return combi;
}

public static void main(java.lang.String[] args) {
for (int i = 0; i < 6; ++i) {
for (int j = 0; j <= i; ++j)
System.out.print(Factorial.combinatorio(i,j) + " ");
System.out.println();
}
}
}


La salida deberia ser:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

Pero sin embargo me sale:
1
1 1
1 2 1
1 1 1 1
1 1 1 1 1
1 1 0 0 1 1

Para compilar y ejecutar estoy usando el Eclipse 4.4 sobre java 1.8.0
Muchas gracias de antemano
Título: Re: Factorial
Publicado por: ivancea96 en 6 Octubre 2017, 21:54 PM
Ve por partes. Primero, asegurate de que cada función realiza su cometido correctamente.
¿La función factorial lo calcula correctamente?
Para n=5, el factorial lo estás calculando así: fact = 1(fact) * 5(n) -> 5.