倍数の和

倍数の和

初級

はじめに

オンラインのファンタジーサバイバルゲームを作っている会社で働いています。

プレイヤーがレベルをクリアすると、エネルギーポイントが与えられます。 与えられるエネルギーの量は、そのレベルを探索しているときにプレイヤーが見つけた魔法のアイテムによって変わります。

説明

プレイヤーがレベルをクリアしたときに与えられるエネルギーポイントを計算するコードを書いてください。

与えられるポイントは、次の2つのことで決まります:

  • プレイヤーがクリアしたレベル(数値)。
  • そのレベルでプレイヤーが集めた各魔法のアイテムの基本値。

エネルギーポイントは、次のルールに従って与えられます:

  1. それぞれの魔法のアイテムについて、その基本値を取り、レベル番号より小さい、その値の倍数をすべて求めます。
  2. それらの数の集合をまとめます。
  3. 重複をすべて取り除きます。
  4. 残ったすべての数の合計を計算します。

例を見てみましょう:

プレイヤーはレベル20をクリアし、基本値が3と5の2つの魔法のアイテムを見つけました。

このプレイヤーが獲得するエネルギーポイントを計算するには、これらの基本値の倍数のうち、レベル20より小さく、重複しないものをすべて求めます。

  • 20より小さい3の倍数:{3, 6, 9, 12, 15, 18}
  • 20より小さい5の倍数:{5, 10, 15}
  • 集合をまとめて重複を取り除く:{3, 5, 6, 9, 10, 12, 15, 18}
  • 重複しない倍数を合計する:3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 = 78
  • したがって、プレイヤーはレベル20をクリアし、基本値が3と5の2つの魔法のアイテムを見つけると、78のエネルギーポイントを獲得します。

レジスタ

レジスタ 用途 型 説明
$a0 入力 アドレス 因数を格納したワードの配列
$a1 入力 整数 因数の個数
$a2 入力 整数 上限
$v0 出力 整数 上限以内の倍数の合計
$t0-9 一時的 任意 一時的な保存に使う
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
MIPS Assembly Exercism

倍数の和を始める準備はできましたか?

Exercismに登録すれば、70個の演習、そして本物の人間によるメンタリングとともに、MIPS Assemblyを学んでマスターできます。すべて無料です。