考虑问题:
It can be shown that for some powers of two in decimal format like:
2^9 = 512
2^89 = 618,970,019,642,690,137,449,562,112
结果以由 1s 和 2s 组成的字符串结尾。事实上,可以证明,对于每个整数 R,都存在 2 的幂,使得 K > 0 的 2K 在其最后 R 个数字中只有 1 和 2 的字符串。
可以在下表中清楚地显示:
R Smallest K 2^K
1 1 2
2 9 512
3 89 ...112
4 89 ...2112
使用这种技术,那么对于 1 <= R <= 10,所有最小 K 值的总和是多少?建议的解决方案:现在这个问题并不难解决。你可以简单地做 int temp = power(2, int) ,然后如果你能得到 temp 的长度,然后将它乘以
(100^len)-i or (10^len)-i
// 我会在哪里确定你想要多少最后一位数字。
现在这个temp = power(2,int) 随着 int 的增加而变得更高,你甚至不能将它存储在 int 类型甚至 long int .... 那么该怎么办。还有其他基于位串的解决方案吗?我想这可能会使这个问题变得容易。提前致谢。