Enteros grandes, grandes errores
En este desafío, tendrás que crear una class para trabajar con enteros grandes. Solo usará un método estático llamado max, que sirve para encontrar el entero grande con el valor más alto entre los datos proporcionados.
También tendrás que gestionar una serie de excepciones para determinar si la entrada proporcionada es válida:
- Un entero grande proporcionado siempre será válido.
- Un entero proporcionado menor o igual que el
MAX_SAFE_INTEGERde JS se convertirá en un entero grande (antes de calcular el valor máximo). - Una cadena que contiene un entero con un valor menor o igual que el
MAX_SAFE_INTEGERde JS se convertirá en un entero grande (antes de calcular el valor máximo). - Si no se proporciona ninguna entrada, la función debe devolver
null. - Si no se cumple ninguna de las condiciones anteriores, la entrada proporcionada no es válida.
El método max aplicado a la entrada debe devolver:
- Si la entrada es válida, el valor proporcionado más alto como un entero grande.
nullsi no se proporciona ninguna entrada.- Una cadena
"Big Error"si la entrada contiene datos no válidos.
Ejemplos
Big.max(1n, 10n, 5n) ➞ 10n
Big.max("10", 5n, 1) ➞ 10n
Big.max() ➞ null
Big.max(2 ** 53 - 1) ➞ 9007199254740991n
Big.max(2 ** 53) ➞ "Big Error"
Big.max("10" / 3) ➞ "Big Error"
Big.max("10" / 2) ➞ 5n
Big.max(10 - 12, 10 - 10, 10 - 11) ➞ 0n
Big.max(0n) ➞ 0n
Big.max("") ➞ "Big Error"Nota
- Leer el enlace específico sobre el comportamiento de BigInt (consulta la pestaña Recursos) es sumamente recomendable.
- Las entradas y los valores se proporcionarán de varias maneras para intentar representar un escenario real. Para facilitar la programación, las pruebas están agrupadas por separado.