Login



Sistema monetário de Byteland

tags [Desafio de Lógica, Code Competion]

Data criação 2010-03-17 03:05:48 UTC

Na internet existem diversos desafios de lógica, eu sempre senti uma certa atração por eles, mas a minha capacidade matemática é meio reduzida devido ao nosso excelente programa de educação brasileiro. Mesmo assim eu me esforço às vezes, o problema abaixo é de complexidade média, e eu coloquei aqui, por que sempre que possível irei resolver esses caras e deixar aqui como um tipo de troféu.

Na ilha de "Byteland" eles tem um sistema monetátio muito estranho.

Cada moeda de ouro possui um número escrito nela.Uma moeda só pode ser trocada no banco em outras três moedas n/2, n/3 e n/4. Mas estes números são arrendodados para baixo (o banco precisa fazer uma grana)

Você pode vender suas moedas por doláres, a troca é sempre feita na proporção 1:1, mas não pode comprar moedas de Byteland.

Você possui uma moeda. Qual é o máximo de doláres que poderia comprar com ela ?

A lógica deve servir para 0 <= n <= 1 000 000 000. Onde n é o número escrito na moeda


Para cada entrada deve haver uma única saída com a quantidade de doláres obtidos.

Exemplo
Entrada: 12 moedas / Saída: 13 doláres
Entrada: 2 moedas / Saída: 2 doláres

Você pode trocar 12 em 6, 4 e 3, e então trocá-las por doláres $6+$4+$3 = $13.

Se você trocar a moeda 2 em 3 menores, você irá obter 1, 0 e 0, a depois irá comprar apenas um dolar. (prejuízo na certa)
Então é melhor realizar a troca direta 2 moedase em 2 doláres.

Solução em Java:






fonte:Code Chef



<<< Voltar