<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://www.tkk7.com)原創,轉載請注明出處.
    主站蜘蛛池模板: 精品国产日韩久久亚洲| 中文字字幕在线高清免费电影| 亚洲一区二区在线免费观看| 免费人成在线观看69式小视频| 国产偷国产偷亚洲高清人| 久久精品7亚洲午夜a| 成人在线视频免费| 两个人看的www免费视频| 亚洲综合av一区二区三区不卡| 亚洲无码高清在线观看| 999久久久免费精品国产| 免费的黄色的网站| 亚洲免费视频播放| 亚洲精品国产字幕久久不卡| 女人被弄到高潮的免费视频| 国产免费无码AV片在线观看不卡| 亚洲人成图片网站| 久久精品国产亚洲av四虎| 国产免费卡一卡三卡乱码| 91热成人精品国产免费| 成全视成人免费观看在线看| 亚洲色最新高清av网站| 精品日韩亚洲AV无码一区二区三区| 又粗又大又猛又爽免费视频| 久久精品亚洲日本波多野结衣 | 手机看黄av免费网址| 一区二区三区免费视频播放器| 亚洲AV色吊丝无码| 久久久久亚洲av无码尤物| 亚洲精品tv久久久久| 成人黄页网站免费观看大全| 美女内射无套日韩免费播放| 亚洲国产精品综合久久2007| 久久亚洲中文字幕精品一区| 日本免费网站在线观看| 在线观看日本免费a∨视频| 无码精品人妻一区二区三区免费看| 一级黄色免费大片| 亚洲AV无码专区亚洲AV桃| 国产精品亚洲综合五月天| 91亚洲va在线天线va天堂va国产|