1

我试图弄清楚如何获取一个数组stalls[] 并找到一个不断减小的大小的中间索引。

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

在打印形式中,它可能看起来像

_ _ _ _ _ X _ _ _ _

_ _ X _ _ X _ _ _ _

我不知道如何让它正确循环。任何帮助,将不胜感激!

4

2 回答 2

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;

对应于数组的中间。

于 2012-11-26T18:32:16.417 回答
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("");
  }
}
于 2012-11-26T18:40:15.433 回答