Percursos
/
Pharo
Pharo
/
Exercícios
/
Soma de Múltiplos
Soma de Múltiplos

Soma de Múltiplos

Fácil

Introdução

Trabalhas numa empresa que faz um jogo online de sobrevivência num mundo de fantasia.

Quando um jogador termina um nível, recebe pontos de energia. A quantidade de energia ganha depende dos itens mágicos que o jogador encontrou ao explorar esse nível.

Instruções

A tua tarefa é escrever o código que calcula os pontos de energia atribuídos aos jogadores quando completam um nível.

Os pontos atribuídos dependem de duas coisas:

  • O nível (um número) que o jogador completou.
  • O valor base de cada item mágico recolhido pelo jogador durante esse nível.

Os pontos de energia são atribuídos de acordo com as seguintes regras:

  1. Para cada item mágico, pega no valor base e encontra todos os múltiplos desse valor que sejam menores do que o número do nível.
  2. Combina os conjuntos de números.
  3. Remove os duplicados.
  4. Calcula a soma de todos os números que restam.

Vamos ver um exemplo:

O jogador completou o nível 20 e encontrou dois itens mágicos com valores base de 3 e 5.

Para calcular os pontos de energia ganhos pelo jogador, temos de encontrar todos os múltiplos únicos destes valores base que sejam menores do que o nível 20.

  • Múltiplos de 3 menores do que 20: {3, 6, 9, 12, 15, 18}
  • Múltiplos de 5 menores do que 20: {5, 10, 15}
  • Combina os conjuntos e remove os duplicados: {3, 5, 6, 9, 10, 12, 15, 18}
  • Soma os múltiplos únicos: 3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 = 78
  • Por isso, o jogador ganha 78 pontos de energia por completar o nível 20 e encontrar os dois itens mágicos com valores base de 3 e 5.

Nota

O truque deste exercício é perceber como iterar ao longo de um intervalo de números e também como verificar numa Collection se há múltiplos divisíveis por um número. Experimenta usar o Spotter para procurar classes potenciais e explorar as categorias de métodos dessas classes.

Lembra-te também de que o ambiente Pharo tem muitas referências cruzadas. Podes clicar com o botão direito em qualquer classe ou método e explorar as "references" de uma classe (para ver como pode ser criada), bem como os "senders" de um método (para ver como pode ser usado).

Editar via GitHub A ligação abre numa nova janela ou separador
Pharo Exercism

Estás pronto para começar Soma de Múltiplos?

Inscreve-te no Exercism para aprenderes e dominares Pharo com 50 exercícios, e mentoria humana real, tudo grátis.