Neste problema deverá apenas submeter uma classe BigNumber (e não um programa completo).
A sua tarefa é criar uma classe BigNumber, que implementa um número arbitrariamente grande (com tantos dígitos quanto o necessário). A classe deverá suportar quaisquer números inteiros positivos, e deverá implementar os seguintes métodos:
Um exemplo de utilização seria:
class TestBigNumber { public static void main(String[] args) { BigNumber n1 = new BigNumber("1234567890"); System.out.println(n1); // Escreve "1234567890" BigNumber n2 = new BigNumber("42"); BigNumber n3 = new BigNumber("1234567890"); System.out.println(n1.equals(n2)); // Escreve "false" System.out.println(n1.equals(n3)); // Escreve "true" BigNumber n4 = new BigNumber("46711237126582920746212"); BigNumber n5 = new BigNumber("8765432110"); BigNumber n6 = n1.add(n3); System.out.println(n6); // Escreve "2469135780" BigNumber n7 = n1.add(n4); System.out.println(n7); // Escreve "46711237126584155314102" BigNumber n8 = n1.add(n5); System.out.println(n8); // Escreve "10000000000" BigNumber n9 = n1.multiply(n3); System.out.println(n9); // Escreve "1524157875019052100" BigNumber n10 = n1.multiply(n4); System.out.println(n10); // Escreve "57668193458655139375688174332680" } }
Deverá apenas submeter a classe BigNumber. O Mooshak irá chamar criar várias instâncias da sua classe usando o construtores definido e irá fazer uma série de testes aos métodos por si implementados (como mostrado no exemplo de utilização).
É garantido que o números guardados serão sempre positivos e que nunca terão mais do que 1000 dígitos.
Última actualização: