在包含5的幂或5的唯一幂之和的一系列数字中找到第n个数字。 例如。 该系列可以像5,25,30(25 + 5),125,130(125 + 5),150(125 + 25),155(125 + 5 + 25)....
答案 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)
。