Factorial

Iniciado por Kougami, 6 Octubre 2017, 17:52 PM

0 Miembros y 1 Visitante están viendo este tema.

Kougami

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

ivancea96

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.