<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    春風博客

    春天里,百花香...

    導航

    <2008年6月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    統計

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    求最大價值轟炸目標

    package com.sitinspring;

    /**
     * 從8*8的方陣中找出最大價值轟炸目標,轟炸范圍為9格
     * 
     * 
    @author sitinspring(junglesong@gmail.com)
     * 
    @since 2008-6-17 上午11:05:15
     * @vsersion 1.00 創建 sitinspring 2008-6-17 上午11:05:15
     
    */

    public class MaxValuableTarget{
        
    /**
         * 程序入口
         * 
    @param args
         
    */

        
    public static void main(String[] args){
            
    // 地圖數組
            int[][] map={
                
    {1,2,3,4,5,3,4,6},
                
    {3,2,0,4,5,3,4,2},
                
    {0,2,3,6,5,3,4,6},
                
    {5,2,3,4,9,3,4,4},
                
    {1,7,2,4,5,3,4,6},
                
    {0,2,3,6,5,3,9,6},
                
    {5,2,3,4,9,3,4,6},
                
    {1,7,2,4,5,3,2,6},
            }
    ;
            
            displayMap(map,
    8);
            
    // 轟炸范圍為九格(3*3),找出最大價值目標
            printMaxValuableTargetInfo(map,8);
        }

        
        
    /**
         * 顯示地圖
         * 
    @param map
         * 
    @param maxRow
         * 
    @param colCount
         
    */

        
    public static void displayMap(int[][] map,int colCount){
            
    int i,j;
            
    int maxRow=map.length;
            
    for(i=0;i<maxRow;i++){
                
    for(j=0;j<colCount;j++){
                    System.out.print(map[i][j]
    +"|");                
                }

                
                System.out.println(
    "");
            }

        }

        
        
    /**
         * 打印最大轟炸價值點信息
         * 
    @param map
         * 
    @param maxRow
         * 
    @param colCount
         
    */

        
    public static void printMaxValuableTargetInfo(int[][] map,int colCount){
            
    int maxRow=map.length;
            
    int i,j;
            
    int max=0;
            
    int xCoordinate=0,yCoordinate=0;
            
    for(i=0;i<maxRow;i++){
                
    for(j=0;j<colCount;j++){
                    
    int value=getBombingTargetValue(i,j,map);
                    
    // System.out.println("i="+i+" j="+j+" value="+value);
                    if(value>max){
                        max
    =value;
                        xCoordinate
    =i;
                        yCoordinate
    =j;
                    }

                }

            }

            
            System.out.print(
    "最大價值轟炸點位于x="+xCoordinate+" y="+yCoordinate+"其價值為"+max);
        }

        
        
    /**
         * 取得轟炸點價值
         * 
    @param x
         * 
    @param y
         * 
    @param map
         * 
    @return
         
    */

        
    public static int getBombingTargetValue(int x,int y,int[][] map){
            
    /*final int[][] arr={
                {-1,-1},{0,-1},{1,-1},
                {-1,0},{0,0},{1,0},
                {-1,1},{0,1},{1,1},
            };
    */

            
            
    final int[][] arr=getBoomArea(3);
            
            
    int sum=0;
            
            
    for(int i=0;i<arr.length;i++){
                
    int newX=x+arr[i][0];
                
    int newY=y+arr[i][1];
                
    if(newX>-1 && newY>-1 && newX<8 && newY<8){
                    sum
    +=map[newX][newY];
                }

            }

            
            
    return sum;
        }

        
        
    /**
         * 取得爆炸范圍
         * 
    @param sideLength 邊長(滾據題意邊長應該是奇數)
         * 
    @return
         
    */

        
    public static int[][] getBoomArea(int sideLength){
            
    int arrLength=sideLength*sideLength;
            
    int[][] arr=new int[arrLength][2];
            
            
    for(int i=0;i<arr.length;i++){
                arr[i][
    0]=i/sideLength-sideLength/2;
                arr[i][
    1]=i%sideLength-sideLength/2;
            }

            
            
    return arr;
        }

    }

    輸出結果:
    1|2|3|4|5|3|4|6|
    3|2|0|4|5|3|4|2|
    0|2|3|6|5|3|4|6|
    5|2|3|4|9|3|4|4|
    1|7|2|4|5|3|4|6|
    0|2|3|6|5|3|9|6|
    5|2|3|4|9|3|4|6|
    1|7|2|4|5|3|2|6|
    最大價值轟炸點位于x
    =4 y=5其價值為45

    posted on 2008-06-17 11:56 sitinspring 閱讀(285) 評論(0)  編輯  收藏 所屬分類: Java基礎算法數據結構

    sitinspring(http://m.tkk7.com)原創,轉載請注明出處.
    主站蜘蛛池模板: a一级毛片免费高清在线| 亚洲精品GV天堂无码男同| 精品国产呦系列在线观看免费| 日本免费电影一区| 亚洲爆乳无码专区www| 成熟女人牲交片免费观看视频| 亚洲乱码在线观看| 夫妻免费无码V看片| 亚洲暴爽av人人爽日日碰| 国产无遮挡色视频免费视频| 日韩欧美亚洲国产精品字幕久久久| 成年私人影院免费视频网站| 亚洲AV无码一区二区三区性色| 日本二区免费一片黄2019| 午夜在线免费视频| 久久亚洲2019中文字幕| 久久国产精品一区免费下载| 久久久亚洲欧洲日产国码aⅴ| 黄在线观看www免费看| 亚洲人成网站在线播放2019| 国产伦一区二区三区免费| 久久国产美女免费观看精品| 亚洲Av永久无码精品三区在线| 亚洲免费视频播放| 亚洲AV无码一区二区三区性色 | 亚洲一区二区三区免费在线观看 | 99久久99久久精品免费观看 | 国产日韩久久免费影院 | 免费毛片在线播放| 一级做a免费视频观看网站| 香蕉蕉亚亚洲aav综合| 国产精品视频免费一区二区| 一级毛片在线播放免费| 亚洲国产精品久久久久网站| 最近免费中文字幕视频高清在线看 | 亚洲人色婷婷成人网站在线观看 | 黄人成a动漫片免费网站| 亚洲AV永久青草无码精品| 一级女人18毛片免费| 粉色视频免费入口| 亚洲资源在线视频|