主页 > 知识库 > 网络编程 > JSP/Java >

Java键盘获取排列组合数,进行排列显示以及排列计算(2)

来源:中国IT实验室 作者:佚名 发表于:2013-07-18 15:21  点击:
flag=false; for (int i = size-count; i size; i++) // 判断是否为最后一个组合:当第一个1移动到数组的m-n的位置,即n个1全部移动到最右端时,就得到了最后一个组合。 { if (temp[i] == 0) flag = true; //如果从

flag=false;  for (int i = size-count; i < size; i++)  // 判断是否为最后一个组合:当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得到了最后一个组合。
  {
  if (temp[i] == 0)
  flag = true;  //如果从第size-numbers开始,扫描是不是最后一个组合
  }
  key++;
  }while(flag);
  int p=0;
  int[] array2=new int[count];
  System.out.println("");
  for(int i=0;i<array.length;i++)       //输出数组的情况
  {
  if(temp[i]==1)
  {
  array2[p]=array[i];
  System.out.print(array2[p]+"、");
  p++;
  }
  }
  System.out.println("");
  System.out.println("可能次数为:"+key);
  }
  }
  这个程序采用了一个临时的temp数组,被选中的置1,没有被选中的置0;然后扫描临时数组,发现10就置为01,并且返回位置信息 position,以便进行把position左边的1全部放到数组的最左端,这段程序还有一个大的难点就是,判断循环最后的一个条件。这个条件就是扫描 从size-numbers开始到size结束时的后面的数组中没有一个0就是最后一个可能的组合。
  通过上面简短的介绍,再加上程序的理解,大家应该可以看的懂这段代码。本代码是放在myeclipse 10中写的,绝对可以跑的起来。这些都是本人一个键一个键敲出来的,希望大家顶一下,尊重一下劳动成果。如果有更好的意见,希望能够联系我。

有帮助
(0)
0%
没帮助
(0)
0%