我想知道是否有一种方法可以在不使用除法运算符的情况下将数组一分为二?对于我正在执行的任务,我不能使用/或 double 。我知道数组的大小,并且我知道我可以将两个子数组的大小设置为原始数组的一半,但我只是想知道是否有一种无需对其进行硬编码的方法。谢谢。
最佳答案
假设你想在不使用除法运算符的情况下找到数组的中间索引,并且你通过“use/or double”意味着你不能使用浮点值(因此乘以 0.5 是不可能的)。
您可以查看bit-shift运营商。一个例子:
int[] myArray = new int[128];
int middleIndex = myArray.length >> 1; // middleIndex is now 64
middleIndex = middleIndex >> 1; // 32
将整数的位向右移动一位相当于除以二。
关于java - 不使用除法运算符将数组一分为二,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28519913/