【发布时间】:2023-03-24 03:40:01
【问题描述】:
考虑问题:
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
(100^len)-i or (10^len)-i
// 我将确定您想要的最后几位数字。
现在这个 temp = power(2,int) 随着 int 的增加而变得更高,你甚至不能将它存储在 int 类型甚至 long int 中.... 那么会怎么做。还有其他基于位串的解决方案吗?我想这可能会使这个问题变得容易。 提前致谢。
【问题讨论】:
标签: c++