我试图弄清楚如何获取一个数组stalls[] 并找到一个不断减小的大小的中间索引。
本质上,我正在获取数组的中间索引,将其分配给布尔值 true,然后获取新的、较小的索引大小并找到它的中点(忽略右侧的所有内容)。
在打印形式中,它可能看起来像
_ _ _ _ _ X _ _ _ _
_ _ X _ _ X _ _ _ _
我不知道如何让它正确循环。任何帮助,将不胜感激!
做:
int begin = 0;
int end = array_size
int middle = (end + begin) / 2;
while( ... )
{
// do something
middle = middle / 2; // break in half
}
...
上面的代码遍历前半部分,要遍历后半部分,您只需修改begin
变量即可:
int being = array_size / 2;
对应于数组的中间。
关于你想要什么有点模糊。但这可能会让你更接近。
public class homework
{
public static void main(String args[])
{
new homework();
}
public homework()
{
boolean[] stalls = new boolean[50];
int middle = stalls.length/2;
for (int i = 0; i < stalls.length; i++)
{
stalls[middle] = true;
middle /= 2;
}
for (int i = 0; i < stalls.length; i++)
{
if (stalls[i] == true)
{
System.out.print("X");
}
else
{
System.out.print("_");
}
System.out.print(" ");
}
System.out.println("");
}
}