f=1;
x=3;
for (int i = 1; i <= n; i*=2)
for (int j = 1; j <= i * i; j++)
if (i % j == 0)
for (int k = 1; k <= j; k++)
f=f*x;
我不知道如何找到这段代码的时间复杂度 因为我不知道有多少次 if 陈述是正确的。
我:n
j: 2^n
由于 i 是 2 的幂,并且每一步都会加倍,因此当且仅当 i 是 j 的倍数(即 j 是小于或等于 2 的幂)时,i % j == 0 才为真。
也就是说,第二维的条件频率具有对数频率。
log(2, 2^n) = n