在包含5的幂或5

时间:2015-08-09 09:17:33

标签: algorithm

在包含5的幂或5的唯一幂之和的一系列数字中找到第n个数字。 例如。 该系列可以像5,25,30(25 + 5),125,130(125 + 5),150(125 + 25),155(125 + 5 + 25)....

1 个答案:

答案 0 :(得分:0)

这个问题有一个“姐妹”问题,使用2而不是5.那就是

  

在一系列数字中找到第n个数字,其中包含 2 的幂或 2 的唯一幂的总和。

相当于您的示例2, 4, 6(4+2), 8, 10(8+2), 12(8+4), 14(8+4+2) ...。您可以从示例中看到,在这种情况下,您将获得所有偶数的序列。因此,该系列中的第n个数字是2 * n。

正如您现在可能知道的那样,每个正整数都可以写成2的不同幂的总和。因此,以下成立。如果我们让n=(b0,b1,...,bk)成为n的位表示,则此“姐妹”系列中的第n个数字由Sn = 2*(b0*2^0 + b1*2^1 + ... + bk*2^k)给出。

例如,如果n=6=(0,1,1)获得S6 = 2*(0*2^0 + 1*2^1 + 1*2^2) = 12

要在针对您的问题的解决方案中对此进行转换,如果n=(b0,b1,...,bk)是n的位代表,则您要查找的数字为Sn = 5*(b0*5^0 + b1*5^1 + ... + bk*5^k)