Só pode ser utilizado tipos de dados primitivos, tais como int, double e boolean,
o tipo BigInteger, e listas encadeadas implementadas implementanda por mim.
Não é permitido o uso de qualquer tipo de vetor ou outra estrutura de alocação de memória. Também não é permitido simular
vetores por meio de String.
Considere uma lista L de tamanho n contendo dígitos. Abaixo, um exemplo de uma lista L1 de
tamanho 10: L1 = [4 3 9 1 3 0 2 8 3 3]
Considere agora a possibilidade de formar números múltiplos de um inteiro k a partir de arranjos dos dígitos presentes em L. Por exemplo, 980 é formado por dígitos da lista L1 e é múltiplo de k = 49. Abaixo, um conjunto de múltiplos de k = 4 que podem ser formados a partir de dígitos de L1: Múltiplos = {0, 4, 8, 12, 20, 24, 28, 32, 40, 48, 80, 84, 92,…}
Observe que os múltiplos 16, 36, 44, 52, dentre outros, não puderam ser formados. Isso acontece
porque a lista não contém os dígitos, ou a quantidade necessária de digítos, necessários para
formar o múltiplo. Nesse caso, a lista não possue o dígito 6, o que impossibilita a formação dos
múltiplos 16 e 36, o dígito 5, o que impossibilita a formação do múltiplo 52, e dois dígitos 4, o que
impossibilita a formação domúltiplo 44.
O objetivo deste trabalho é, a partir de uma lista L e umnúmero k, que serão dados como entrada,
encontrar o maior múltiplo de k usando somente os dígitos presentes em L.Se um dígito aparece na
lista somente uma vez, esse dígito só poderá ser usado uma única vez para formar omúltiplo. Se ele aparecer duas vezes, poderá ser usado somente duas vezes, e assim por diante.
Bom eu recebo como parametro uma String linha e implementei uma fila onde os valores lidos nessa linha são inserido em ordem decrescente. A linha conterá 49 dígitos. De modo que não posso encontrar já de cara o maior e tentar colocar em um int ou long por causa de nullexeption.
Preciso de alguma maneira de manipular os digitos (já em ordem decrecente) e fazer as verificações se esse numero é divisivel por K. - Lembrando que recebo uma lista encadeada (tanto faz se dupla ou simples) como parametro.
Por enquanto a idéia que tenho é que tera de ser um metodo recursivo.
Se alguém puder me ajudar eu agradeço muito.