螺旋行列

螺旋行列

中級

はじめに

古い森の近くにある小さな村には、森の奥深くに埋められた隠された宝物の伝説がありました。 何度も挑戦されてきましたが、これまで誰もそれを見つけることはできませんでした。 しかし、エララという名の若い探検家のおかげで、その状況が変わり始めます。 彼女は、宝物の場所を示す手がかりが書かれた古い文書を発見していました。 その手がかりをもとに、エララは宝物へと続く道を示す地図を描くことができました。

驚いたことに、その道は風変わりな時計回りの渦巻きを描いていました。 これまで誰も宝物を見つけられなかったのも、それもそのはずです。 地図を手に、エララは隠された宝物を見つけるための旅に出ます。

説明

与えられたサイズの正方行列を返してください。

行列は自然数で埋めます。左上の角にある1から始めて、時計回りに内側へ向かう渦の順に数を増やしていきます。次の例のようになります。

例

サイズ3のスパイラル行列

1 2 3
8 9 4
7 6 5

サイズ4のスパイラル行列

 1  2  3 4
12 13 14 5
11 16 15 6
10  9  8 7

出力は行優先順で並べる必要があります。つまり、最初の行の単語をすべて並べ、次に2番目の行の単語を並べる、というようにします。

レジスタ

レジスタ 用途 型 説明
$a0 入力 整数 サイズ
$a1 入力/出力 アドレス 行優先順の単語の行列
$v0 出力 整数 行列内の単語数
$t0-9 一時 任意 一時的な保存用
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
MIPS Assembly Exercism

螺旋行列を始める準備はできましたか?

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