如何在循环中划分数组块?

时间:2012-11-26 18:29:27

标签: java

我试图找出如何采用数组停顿[]并找到持续减小的中间索引。

本质上,我正在获取数组的中间索引,将其分配给布尔值true,然后获取新的,较小的索引大小并找到的中间点(忽略右边的一切)。

在印刷版中,它可能看起来像

_ _ _ _ _ X _ _ _ _

_ _ X _ _ X _ _ _ _

我无法弄清楚如何让它正确循环。任何帮助,将不胜感激!

2 个答案:

答案 0 :(得分:1)

执行:

  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;

对应于数组的中间。

答案 1 :(得分:0)

对于你想要的东西有点模糊。但这可能会让你更接近。

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("");
  }
}