假设 的长度array是动态的,并且元素遵循相同的模式,其中下一个元素是前一个元素的一半。例如 1024、512、256、128...
我想直接确定一个元素的索引。例如,如果我有,512我会输出index 1而不循环遍历元素并将它们与 512 进行比较,然后输出 1。即不是这样:
for (int i = 0; i < length; ++i) {
if (array[i] == 512) {
printf("%d\n", i);
break;
}
}
我一直在考虑使用模数或位操作,如移位,但我无法让它工作。如何做到这一点?