欧几里得算法是用于计算两个正整数的最大公约数(GCD)的广为人知的算法。
算法
为解决这一挑战,算法描述如下:
将两个输入显示为某个字符的相邻行,
例如的输入3,4可以由相邻行000和0000将
length(short_line)较长行中的第一个字符转换为另一个字符,-
现在说看起来像000和---0删除
length(short_line)较长行中的第一个字符。
现在000,0重复步骤2和3,直到两个具有相等的长度,使用较短和较长的线在每次迭代之后,例如
000,0
-00,0
00,0
-0,0
0,0- 您可以选择是在此处停止还是继续迭代,然后将其中一行转换为空行。
这些步骤中的每个步骤之间应间隔0.3秒至1.5秒。
挑战
编写一个程序,给定两个自然数作为输入,它会创建一个输出,该输出看起来与上述算法的输出完全相同。您可以使用其他非空白打印的ASCII字符比0和-,但要一致,仅使用两个字符。如果输出(包括时序)与上述算法产生的输出完全相同,您也可以使用其他算法。
例子
这是input的示例24,35,它们是互质数,因此它们的GCD为1。
这是带有16,42GCD 2的input的示例。
规则
澄清说明
- 代表数字的线需要保持其原始顺序,即,在所有后续帧中,第一个显示的“框架”的第一和第二行分别必须是第一和第二行。
- 算法结束后,不应再出现其他可见实体。但是,这也意味着如果确保最后一个“帧”显示的时间至少与消隐之前所有其他帧的显示时间相同,则可以将行消隐。
:-)

