为什么 C++ 不允许将其作为数组大小?
const int SIZE = ceil(log10(pow(2., 1000)));
int arr[SIZE];
对于那些感兴趣的人,这是针对 ProjectEuler 上的第 16 题。我试图声明一个数组来保存数字 2^1000 的每个数字,这是我查找需要多少个元素的方法。
最佳答案
它不允许这样做,因为 =
的右侧不是常量表达式,而 SIZE
需要它是常量表达式。现在 const int 仅仅意味着它是一个只读整数对象。
const int SIZE = ceil(log10(pow(2., 1000)));
改用动态数组,例如 std::vector
。
或者您可以使用计算器并硬编码该值 - 顺便说一句,它大约为 301.03 :)
关于c++ - 数组大小以对数表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20616476/