湖北赖子麻将下载|赖子麻将中心下载
主頁 > 知識庫 > 網絡編程 > JSP/Java >

Java鍵盤獲取排列組合數,進行排列顯示以及排列計算

來源:中國IT實驗室 作者:佚名 發表于:2013-07-18 15:21  點擊:
這段java代碼是自己花了很長時間寫的,基本java初學者都看的懂,不過理解這個思想就有點復雜了,需要耐心的看下去。如果用傳統的for循環來寫的話,很復雜,很難實現高中學過的排列組合數的顯示,運算結果很簡單,但是顯示這些有可能的組合就比較困難了。 impo
這段java代碼是自己花了很長時間寫的,基本java初學者都看的懂,不過理解這個思想就有點復雜了,需要耐心的看下去。如果用傳統的for循環來寫的話,很復雜,很難實現高中學過的排列組合數的顯示,運算結果很簡單,但是顯示這些有可能的組合就比較困難了。  import java.util.*;
  public class test15 {
  public static void main(String args[])
  {
  int size;
  int count;
  Scanner s=new Scanner(System.in);
  System.out.print("請輸入您輸入的組合數的規模:(size)");
  size=s.nextInt();
  int array[] = new int[size];
  for(int i=0;i<size;i++)
  {
  System.out.print("請輸入要進行操作的數:\t");
  array[i]=s.nextInt();
  }
  System.out.print("您輸入的數為:");
  for(int j=0;j<size;j++)
  {
  System.out.print(array[j]+"、");
  }
  System.out.println("");
  System.out.println("請輸入要參與組合數的規模:(count)");
  count=s.nextInt();
  int[] temp=new int[size];
  for(int i=0;i<size;i++)     //臨時數組初始化為1、0數組,進行操作
  {
  if(i<count)
  {
  temp[i]=1;
  }
  else
  {
  temp[i]=0;
  }
  }
  System.out.print("初始化的臨時數組為:");    //打印臨時初始化數組
  for(int i=0;i<size;i++)
  {
  System.out.print(temp[i]);
  }
  System.out.println("");            //換行
  boolean flag=false;
  int key=1;
  do                         //循環進行轉置操作     10變01,左邊的1全部到最左端操作
  {
  int position=0;        //判斷查詢到的10 的位置
  int numbers=0;         //記錄查到的10位置前面的1的個數
  int q=0;
  int[] result=new int[count];
  System.out.println("");
  for(int i=0;i<array.length;i++)       //輸出數組的情況
  {
  if(temp[i]==1)
  {
  result[q]=array[i];
  System.out.print(result[q]+"、");
  q++;
  }
  }
  for (int i = 0; i < size-1; i++)     //找奧最后一個10的位置
  {
  if (temp[i] == 1 && temp[i + 1] == 0)   //判斷10的條件
  {
  temp[i] = 0;
  temp[i + 1] = 1;
  position = i;     //第一次循環掃描后,返回第一次循環最后的10的地址
  break;    //跳出if循環
  }
  }
  for (int i = 0; i < position; i++)    //判斷10左邊的1的個數
  {
  if (temp[i] == 1)
  numbers++;
  }
  for (int i = 0; i < position; i++)     //把10位置左邊的1全部移到最左端
  {
  if (i < numbers)
  temp[i] = 1;
  else
  temp[i] = 0;
  }
  System.out.println("");
  System.out.print("參考的臨時數組為:");
  for(int i=0;i<size;i++)
  {
  System.out.print(temp[i]);
  }

有幫助
(0)
0%
沒幫助
(0)
0%
湖北赖子麻将下载 四川金7乐网上开奖查询 一定牛吉林十一选五 北京单场赛程时间表 福彩组三三码遗漏 赌场工作 看视频还能赚钱的软件叫什么 众乐游棋牌 麻将牌游戏 赚钱一少钱赚大钱软件 中国足彩网