Solución

@haxis_rawr·18/8/2026TypeScript
solution.tsTypeScript
export function getPiDigits(n: number): string {
  const precision = n + 10;
  const escale = 10n ** BigInt(precision);

  const arctanInverse = (inverse: bigint): bigint => {
    const inverseSqur = inverse * inverse;

    let term = escale / inverse;
    let sum = term;
    let divider = 1n;
    let sign = -1n;

    while (term > 0n) {
      term /= inverseSqur;
      divider += 2n;

      const fraction = term / divider;

      if (fraction === 0n) {
        break;
      }

      sum += sign * fraction;
      sign *= -1n;
    }

    return sum;
  };

  const piEsc =
    16n * arctanInverse(5n) -
    4n * arctanInverse(239n);

  const pi = piEsc / (10n ** 10n);

  return "3." + pi.toString().slice(1);
}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.