Buenas, tengo un problema con el siguiente codigo:
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
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.