9
打印超级Collatz号码
将在Collatz序列(也称为3X + 1的问题)是你用任意正整数开始,在这个例子中,我们将使用10和应用这一套步骤吧: if n is even: Divide it by 2 if n is odd: Multiply it by 3 and add 1 repeat until n = 1 10是偶数,所以我们将2除以得到5。5是奇数,所以我们乘以3并加1得到16。16是偶数,因此将其切成两半得到8。8的一半是4,一半4是2,一半是2。因为这花了我们6步,所以我们说10的停止距离为6。 Super Collatz数是一个数字,其停止距离大于每个数字的停止距离。例如,6是Super Collatz数,因为6的停止距离为8,5的停止距离为5,4的为2,3的为7,2的为1,1的值为 0。(OEIS中的A006877)您必须以数字n作为输入,并输出直到n的所有Super Collatz数字。 规则 完整程序或功能是可以接受的。 您无法预先计算或对Super Collatz序列进行硬编码。 您可以采用任何合理的格式输入。 输出可以作为功能列表返回,也可以打印到STDOUT或文件中。以最方便的为准。 无效的输入(非数字,小数,负数等)导致未定义的行为。 示例非高尔夫python def collatzDist(n): if n == 1: return 0 if …