程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 急求源代碼-這道題怎麼做啊?循環賽日程表

急求源代碼-這道題怎麼做啊?循環賽日程表

編輯:編程解疑
這道題怎麼做啊?循環賽日程表

圖片說明

最佳回答:


論碼農的道德修養


public class YH {
    /**
     * @author stefan_xiepj
     * @param agrs
     * 算法思想:分割分治算法,遞歸調用
     */
    public static void main(String agrs[]) {
        //測試main函數
        int[][]test = subset(5);
        for(int i=0;i<test.length;i++){
            for(int j=0;j<test.length;j++){
                System.out.print(test[i][j]+" ");
            }
            System.out.println();
        }

    }

    public static int[][] subset(int n){
        //定義二維數組長度
        int length = (int) Math.pow(2, n);
        //定義二維數組
        int a[][] = new int [length][length];
        //定義遞歸出口
        if(length==2){
            a[0][0]=1;
            a[0][1]=2;
            a[1][0]=a[0][1];
            a[1][1]=a[0][0];
        }else
        //遞歸函數實現
        {
            //遞歸子函數調用
            int [][]b = subset(n-1);
            int bLength=b.length;
            for(int i=0;i<bLength;i++){
                for(int j=0;j<bLength;j++){
                    //復制下一遞歸值,並計算橫向值
                    a[i][j] = b[i][j];
                    a[i][bLength+j] = (int) (b[i][j]+Math.pow(2, n-1));
                }
            }
            //鏡像結果集
            for(int i=0;i<bLength;i++){
                for(int j=0;j<length;j++){
                    a[length-i-1][length-j-1]=a[i][j];
                }
            }

        }
        return a;
    }
}
u010575396
Stefan_xiepj
xubo_ob
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved