ユークリッドアルゴリズムは、2つの正の整数の最大公約数(GCD)を計算するための広く知られているアルゴリズムです。
アルゴリズム
この課題のために、アルゴリズムは次のように説明されています。
2つの入力を特定の文字の隣接する行として表示します。
たとえば、の入力は3,4
隣接する行で表すことができ000
、0000
最初に電源を入れ
length(short_line)
、別の文字に長い行の文字を言う-
、今それがどのように見える000
し、---0
length(short_line)
長い行の最初の文字を削除します。
今000
、0
2までの手順を繰り返し2と3は、各反復の後に短いと長い行を使用して、同じ長さを持って、例えば
000
、0
-00
、0
00
、0
-0
、0
0
、0
- ここで停止するか、反復を続行して、行の1つを空の行にするかを選択できます。
これらの各ステップは、0.3秒から1.5秒の間隔で区切る必要があります。
チャレンジ
2つの自然数を入力として与え、上記のアルゴリズムの出力とまったく同じように見える出力を作成するプログラムを作成します。以外の空白以外の印刷可能なASCII文字を使用できますが、一貫性が0
あり-
、2文字のみを使用します。タイミングを含む出力が上記のアルゴリズムで生成されるものとまったく同じであれば、代替アルゴリズムを使用することもできます。
例
これは、24,35
GCDが1であるため互いに素であるinputの例です。
これは、16,42
GCD 2を持つinputの例です。
ルール
明確化
- 番号を表す線は元の順序のままである必要があります。つまり、最初に表示される「フレーム」の最初と2番目の行は、後続のすべてのフレームでそれぞれ最初と2番目の行である必要があります。
- アルゴリズムの終了後、追加の可視エンティティは表示されません。ただし、これは、最後の「フレーム」が他のすべてのフレームと同じ時間だけ表示されていることを確認してから空白にする前に、行を空白にしてもよいことを意味します。
:-)