我正在构建一个大型的乐高机器人,我需要使用一组齿轮来生成一些特定的齿轮比。我有很多常见的乐高齿轮规格的齿轮:8齿,16齿,24齿或40齿。编写一个可以在输入齿轮比的地方使用的程序,该程序会告诉我应该使用哪种齿轮组合来获得所需的齿轮比。
输入比例将在标准输入(或您的语言的等效输入)上指定,并且两个整数之间用冒号分隔。比率a:b
表示输出轴的旋转a/b
时间应与输入轴的旋转速度相同。
输出到标准输出应该是包含齿轮比的一个空格分隔列表中的单个线路,在的形式x:y
,其中x
是在输入轴上的齿轮的尺寸和y
是在输出轴的齿轮的尺寸。对于给定的传动比,必须使用尽可能少的齿轮数。每个x
和y
必须的一个8,16,24,40
。
例子:
1:5 -> 8:40
10:1 -> 40:8 16:8
9:4 -> 24:16 24:16
7:1 -> IMPOSSIBLE
7:7 ->
6:15 -> 16:40
如果不可能达到所需的传动比,则打印“不可行”。如果不需要齿轮,请打印空字符串。
这是代码高尔夫,最短答案胜出。
齿的比例不是与角速度成反比吗?因此,例如,如果所需的输入输出速度为1:5,该比率是否应为40:8而不是8:40?还是左手传动比是您想要的有效齿轮齿数与实际齿轮齿数比?
—
DavidC 2012年
有趣的问题......
—
罗布2012年
1:5 -> 8:40
而10:1 -> 40:8
有意义,但其他人没有这么多。
@DavidCarraher:我想您可以用任何一种方式定义它。我试图保持内部一致。
—
基思·兰德尔
1:5
意味着输出轴的旋转速度慢了5倍,而输入端的8齿齿轮和输出端的40齿齿轮使这种情况发生了。
@MikeDtrick:好吧,
—
基思·兰德尔
10:1 -> 40:8 16:8
不是你所说的。那其他人会使您感到困惑吗? 9:4
实现3:2
两次。 3:2
使用实现24:16
。
@MikeDtrick:是的,第一个问题。要获得10:1,您可以进行5:1(使用40齿/ 8齿),然后进行2:1(使用16齿/ 8齿)。
—
基思·兰德尔
7:7
与相同1:1
,因此无需执行任何齿轮。