我有下面的代码片段
new char[(int)floor(log(25*(n+1)) / log(26))]
当上述n = 27
返回2
时
但为什么上述CCD_ 3的长度是CCD_?
让我们循序渐进:
25*(n+1) = 25 * 28 = 700
假设log
是Math.log
,这是自然对数,那么我们有:
log(25*(n+1)) = 6.551080335043404
同样:
log(26) = Math.log(26) = 3.258096538021482
因此floor(log(25*(n+1)) / log(26)) = floor(6.55/3.258) = floor(2.01) = 2
如预期的那样产生CCD_ 11。
通常,char[] c = new char[n];
将生成一个大小等于n
的新字符数组c
。这意味着从索引0
到n-1
,数组中将有n
元素。