Coeficientes binomiales El coeficiente binomial o número combinatorio nk es el número de modos en los que se puede escoger k objectos de un total de n. Su fórmula es bien conocida, n n! = k k!(n − k)! donde n! = n ·(n − 1)·(n − 2) · · · 3·2·1, pero no es demasiado práctica desde un punto de vista computacional, puesto que se tiene que trabajar con números muy grandes (los factoriales) para acabar obteniendo un resultado mucho más pequeño. Por ejemplo, 2432902008176640000 20 20! = = 184756, = 10!10! 1316819440000 10 donde se puede ver que, pese a que el número final sólo tiene 6 cifras, nos ha hecho falta calcular 20!, que tiene 19. Esto es un problema, puesto que el tipo int de 32 bits que suele usarse en la mayorı́a de lenguajes de programación no puede almacenar números de más de 10 cifras. Este, sin embargo, no es el único modo de calcular el número nk , puesto que los números combinatorios satisfacen la siguiente propiedad: n =1 si k és 0 o n, k n n−1 n−1 = + si 0 < k < n. k k−1 k Esta fórmula recursiva permite calcular los números combinatorios sin multiplicar ni dividir, mediante un procedimiento visual conocido hoy en dı́a como “Triángulo de Pascal” o “Triángulo de Tartaglia”, pero del cual hay referencias históricas con más de 1000 años de antigüedad: 0 1 0 1 1 1 1 0 1 2 2 2 1 2 1 0 1 2 3 3 3 3 1 3 3 1 0 1 2 3 4 4 4 4 4 1 4 6 1 1 4 3 2 1 0 ... ... Para calcular los siguientes números combinatorios sólo hay que ir llenando las filas del n triángulo. Usa esta idea para calcular el valor de los números combinatorios k donde n ≤ 30 y 0 ≤ k ≤ n. Entrada La entrada consiste en una secuencia de lı́neas, cada una de las cuales contiene 2 números naturales n y k, donde 0 ≤ n ≤ 30 y 0 ≤ k ≤ n. Salida Para cada lı́nea de la entrada tu programa debe escribir una lı́nea con el valor del número combinatorio nk correspondiente. Ejemplo de entrada 1 Ejemplo de salida 1 0 1 1 2 2 2 1 1 1 1 2 1 0 0 1 0 1 2 Ejemplo de entrada 2 Ejemplo de salida 2 20 30 30 30 30 30 184756 155117520 30045015 30045015 1 1 10 15 10 20 0 30