倍数求和

实践练习C++17

简介

你在一家开发在线奇幻生存游戏的公司工作。

玩家完成关卡后会获得能量点数,数量取决于他们探索时发现的魔法物品。

任务说明

编写代码,计算玩家完成关卡后获得的能量点数。

奖励取决于:

  • 完成的关卡编号。
  • 该关卡收集到的每件魔法物品的基础值。

计算规则如下:

  1. 对每件魔法物品,找出其基础值所有严格小于关卡编号的正倍数。
  2. 合并这些集合。
  3. 去掉重复项。
  4. 对剩余数字求和。

例如:

玩家完成第 20 关,找到基础值分别为 3 和 5 的两件物品。

要找出这两个基础值所有小于 20 的不同倍数。

  • 3 的倍数:{3, 6, 9, 12, 15, 18}。
  • 5 的倍数:{5, 10, 15}。
  • 合并去重:{3, 5, 6, 9, 10, 12, 15, 18}。
  • 求和:3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 = 78。
  • 因此玩家得到 78 点能量。