3
疯狂但理性的基础
基于10、2、36甚至-10,我们面临许多挑战,但是其他所有理性基础又如何呢? 任务 给定以10为底的整数和有理底数,请以该底数返回整数(作为数组,字符串等)。 处理 很难想象一个合理的基础,因此让我们使用爆炸点将其可视化: 考虑这个动画,以基数3表示17: 每个点代表一个单位,框代表数字:最右边的框是一个位置,中间的框是3 ^ 1位置,最左边的框是3 ^ 2位置。 我们可以从一个地方的17个点开始。但是,这是基数3,因此该位置必须小于3。因此,我们“爆炸” 3个点,并在左侧的框上创建一个点。我们重复此过程,直到最终得到一个没有爆炸点的稳定位置(即同一框中的3个点)。 因此,以10为底的17是以3为底的122。 分数基数类似于将一些点分解为一个以上的点。基数3/2将爆炸3个点以创建2。 以3/2为基数表示17: 因此,以10为底的17是以3/2为底的21012。 负基的工作原理与此类似,但是我们必须跟踪符号(使用所谓的反点,等于-1;用空心圆表示)。 以-3表示17: 注意,还有额外的爆炸使所有框的符号相同(忽略零)。 因此,以10为底的17是以-3为底的212。 否定的有理基础在以上两种情况的组合中也类似地起作用。 规则 没有标准漏洞。 输出中每个“数字”的符号必须相同(或为零)。 所有数字的绝对值必须小于基数分子的绝对值。 您可以假定基数的绝对值大于1。 您可以假设一个理性基数是其最小化形式。 您可以在输入中分别计算基数的分子和分母。 如果一个数字具有多种表示形式,则可以输出其中任何一种。(例如,12在基体10可以是{-2, -8}和{1, 9, 2}在碱-10) 测试用例: 格式: {in, base} -> result {7, 4/3} -> {3, 3} {-42, -2} -> {1, 0, 1, …