Ir al contenido (saltar navegación)

La serie de Leibnitz

Tiempo máximo: 2,000-3,000 sMemoria máxima: 4096 KiB

La serie de Leibnitz es una serie infinita cuyo valor converge a π/4:

\[ 1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \frac{1}{9} - \ldots = \frac{\pi}{4} \]

Aunque puede utilizarse para calcular el valor de π, en la práctica la convergencia es muy lenta y es necesario sumar muchos términos para lograr una precisión de unos pocos decimales. Por ejemplo, sumando el primer millón de términos de la serie se obtiene un valor de π igual a 3.1415916535..., que sólo es exacto hasta la quinta cifra decimal.

El objetivo de este ejercicio es calcular la suma de los primeros N términos de la serie de Leibnitz con un determinado número M de posiciones decimales. Es importante calcular cada uno de los términos de la suma con el número de decimales requerido antes de sumarlo. Nótese que el número obtenido de este modo puede ser distinto del resultado de truncar a M decimales la suma de los mismos N términos calculados con un número de cifras decimales mayor.

Por ejemplo, la suma de los 100 primeros términos de la serie, calculados con 10 decimales, da como resultado:

0.7828982264

En cambio sumando los mismos 100 términos, calculados con 50 decimales se obtiene:

0.78289822588963819107685355956923012910076359610164

Los dos últimos decimales del primer resultado (64) no son iguales a los de esa misma posición en el segundo (58).

Entrada

La entrada está formada por distintos casos de prueba, cada uno descrito por dos números enteros. El primer entero, N, es el número de términos de la serie que se quiere sumar. El segundo entero, M, es el número de cifras decimales que se desea tener. Se garantiza que 1 ≤ N ≤ 10.000 y 0 ≤ M ≤ 500.

El final de la entrada se indica con una línea con un único 0 que no se debe procesar.

Salida

Para cada caso de prueba se escribirá en una línea el valor de la suma de los N primeros términos de la serie de Leibnitz con M cifras decimales.

Entrada de ejemplo

100 10
100 50
100 0
1 12
2 7
0

Salida de ejemplo

0.7828982264
0.78289822588963819107685355956923012910076359610164
1.
1.000000000000
0.6666667