春風(fēng)博客

          春天里,百花香...

          導(dǎo)航

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

          統(tǒng)計

          公告

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

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          將5,6,7,8,9添入到算式 _ _ _ * _ _ 中,要求求出最大乘積的結(jié)果和算式

          package com.sitinspring;

          import java.util.LinkedList;
          import java.util.List;

          /**
           * 將5,6,7,8,9添入到下面的算式中,使得他們的積有最大值
           * _ _ _ * _ _ (即三位數(shù)乘以兩位數(shù)的形式),要求求出最大乘積的結(jié)果和算式。
           * 
          @author sitinspring(junglesong@gmail.com)
           * 
          @since 2008-6-11 上午10:17:57
           * @vsersion 1.00 創(chuàng)建 sitinspring 2008-6-11 上午10:17:57
           
          */

          public class MaxMultiResult{
              
          /**
               * 存儲全排列后數(shù)組的鏈表
               
          */

              
          private List<Integer[]> ls;
              
              
          /**
               * 構(gòu)造函數(shù)
               * 
          @param arr
               
          */

              
          public MaxMultiResult(Integer[] arr){
                  ls
          =new LinkedList<Integer[]>();
                  
                  
          // 進(jìn)行全排列,將排列后的結(jié)果放入鏈表
                  permutation(arr,0,arr.length);
                  
                  
          // 遍歷查找乘積的最大值
                  int multiResult=0;
                  
          int op1=0;
                  
          int op2=0;
                  
          for(Integer[] arrTmp:ls){
                      
          int op1Tmp=arrTmp[0]*100+arrTmp[1]*10+arrTmp[2];
                      
          int op2Tmp=arrTmp[3]*10+arrTmp[4];
                      
          int multiResultTmp=op1Tmp*op2Tmp;
                      
          // 輸出臨時結(jié)果
                      System.out.println("乘積為"+multiResultTmp+" 算式為:"+op1Tmp+"*"+op2Tmp);
                      
                      
          if(multiResultTmp>multiResult){
                          multiResult
          =multiResultTmp;
                          op1
          =op1Tmp;
                          op2
          =op2Tmp;
                      }

                  }

                  
                  
          // 輸出最大乘積,乘數(shù),被乘數(shù)
                  System.out.println("最大乘積為"+multiResult+" 算式為:"+op1+"*"+op2);
              }

              
              
          /**
               * 全排列,將排列結(jié)果變成新數(shù)組存入鏈表
               * 
          @param arr
               * 
          @param start
               * 
          @param end
               
          */

              
          private void permutation(Integer[] arr,int start,int end){
                  
          if(start<end+1){
                      permutation(arr,start
          +1,end);
                      
                      
          for(int i=start+1;i<end;i++){
                          Integer temp;
                          
                          temp
          =arr[start];
                          arr[start]
          =arr[i];
                          arr[i]
          =temp;
                          
                          permutation(arr,start
          +1,end);
                          
                          temp
          =arr[i];
                          arr[i]
          =arr[start];
                          arr[start]
          =temp;
                      }

                  }

                  
          else{
                      
          // 創(chuàng)建新數(shù)組
                      Integer[] arrNew=new Integer[arr.length];            
                      
          for(int i=0;i<arrNew.length;i++){
                          arrNew[i]
          =new Integer(arr[i]);
                      }

                      
                      
          // 將新數(shù)組放入鏈表
                      ls.add(arrNew);
                      
                      
          // 輸出新數(shù)組
                      /*for(int i=0;i<end;i++){
                          System.out.print(arrNew[i]+",");
                      }
                      System.out.print("\n");
          */

                  }

              }


              
          /**
               * 程序入口
               * 
          @param args
               
          */

              
          public static void main(String[] args){
                  Integer[] arr
          ={5,6,7,8,9};
                  
          new MaxMultiResult(arr);
              }

          }

          輸出結(jié)果:
          乘積為50463 算式為:567*89
          乘積為55566 算式為:
          567*98
          乘積為44872 算式為:
          568*79
          乘積為55096 算式為:
          568*97
          乘積為49503 算式為:
          569*87
          乘積為44382 算式為:
          569*78
          乘積為51264 算式為:
          576*89
          乘積為56448 算式為:
          576*98
          乘積為39882 算式為:
          578*69
          乘積為55488 算式為:
          578*96
          乘積為49794 算式為:
          579*86
          乘積為39372 算式為:
          579*68
          乘積為40503 算式為:
          587*69
          乘積為56352 算式為:
          587*96
          乘積為46294 算式為:
          586*79
          乘積為56842 算式為:
          586*97
          乘積為39463 算式為:
          589*67
          乘積為44764 算式為:
          589*76
          乘積為51342 算式為:
          597*86
          乘積為40596 算式為:
          597*68
          乘積為45448 算式為:
          598*76
          乘積為40066 算式為:
          598*67
          乘積為51852 算式為:
          596*87
          乘積為46488 算式為:
          596*78
          乘積為58473 算式為:
          657*89
          乘積為64386 算式為:
          657*98
          乘積為51982 算式為:
          658*79
          乘積為63826 算式為:
          658*97
          乘積為57333 算式為:
          659*87
          乘積為51402 算式為:
          659*78
          乘積為60075 算式為:
          675*89
          乘積為66150 算式為:
          675*98
          乘積為40002 算式為:
          678*59
          乘積為64410 算式為:
          678*95
          乘積為57715 算式為:
          679*85
          乘積為39382 算式為:
          679*58
          乘積為40533 算式為:
          687*59
          乘積為65265 算式為:
          687*95
          乘積為54115 算式為:
          685*79
          乘積為66445 算式為:
          685*97
          乘積為39273 算式為:
          689*57
          乘積為51675 算式為:
          689*75
          乘積為59245 算式為:
          697*85
          乘積為40426 算式為:
          697*58
          乘積為52350 算式為:
          698*75
          乘積為39786 算式為:
          698*57
          乘積為60465 算式為:
          695*87
          乘積為54210 算式為:
          695*78
          乘積為68085 算式為:
          765*89
          乘積為74970 算式為:
          765*98
          乘積為45312 算式為:
          768*59
          乘積為72960 算式為:
          768*95
          乘積為65365 算式為:
          769*85
          乘積為44602 算式為:
          769*58
          乘積為67284 算式為:
          756*89
          乘積為74088 算式為:
          756*98
          乘積為52302 算式為:
          758*69
          乘積為72768 算式為:
          758*96
          乘積為65274 算式為:
          759*86
          乘積為51612 算式為:
          759*68
          乘積為54165 算式為:
          785*69
          乘積為75360 算式為:
          785*96
          乘積為46374 算式為:
          786*59
          乘積為74670 算式為:
          786*95
          乘積為51285 算式為:
          789*65
          乘積為44184 算式為:
          789*56
          乘積為68370 算式為:
          795*86
          乘積為54060 算式為:
          795*68
          乘積為44688 算式為:
          798*56
          乘積為51870 算式為:
          798*65
          乘積為67660 算式為:
          796*85
          乘積為46168 算式為:
          796*58
          乘積為51153 算式為:
          867*59
          乘積為82365 算式為:
          867*95
          乘積為68335 算式為:
          865*79
          乘積為83905 算式為:
          865*97
          乘積為49533 算式為:
          869*57
          乘積為65175 算式為:
          869*75
          乘積為51684 算式為:
          876*59
          乘積為83220 算式為:
          876*95
          乘積為60375 算式為:
          875*69
          乘積為84000 算式為:
          875*96
          乘積為49224 算式為:
          879*56
          乘積為57135 算式為:
          879*65
          乘積為59133 算式為:
          857*69
          乘積為82272 算式為:
          857*96
          乘積為67624 算式為:
          856*79
          乘積為83032 算式為:
          856*97
          乘積為57553 算式為:
          859*67
          乘積為65284 算式為:
          859*76
          乘積為50232 算式為:
          897*56
          乘積為58305 算式為:
          897*65
          乘積為68020 算式為:
          895*76
          乘積為59965 算式為:
          895*67
          乘積為51072 算式為:
          896*57
          乘積為67200 算式為:
          896*75
          乘積為82195 算式為:
          967*85
          乘積為56086 算式為:
          967*58
          乘積為72600 算式為:
          968*75
          乘積為55176 算式為:
          968*57
          乘積為83955 算式為:
          965*87
          乘積為75270 算式為:
          965*78
          乘積為82960 算式為:
          976*85
          乘積為56608 算式為:
          976*58
          乘積為63570 算式為:
          978*65
          乘積為54768 算式為:
          978*56
          乘積為83850 算式為:
          975*86
          乘積為66300 算式為:
          975*68
          乘積為64155 算式為:
          987*65
          乘積為55272 算式為:
          987*56
          乘積為73950 算式為:
          986*75
          乘積為56202 算式為:
          986*57
          乘積為65995 算式為:
          985*67
          乘積為74860 算式為:
          985*76
          乘積為82302 算式為:
          957*86
          乘積為65076 算式為:
          957*68
          乘積為72808 算式為:
          958*76
          乘積為64186 算式為:
          958*67
          乘積為83172 算式為:
          956*87
          乘積為74568 算式為:
          956*78
          最大乘積為84000 算式為:
          875*96

          posted on 2008-06-11 10:57 sitinspring 閱讀(918) 評論(0)  編輯  收藏 所屬分類: 算法數(shù)據(jù)結(jié)構(gòu)

          sitinspring(http://www.aygfsteel.com)原創(chuàng),轉(zhuǎn)載請注明出處.
          主站蜘蛛池模板: 大同市| 桃园县| 兴仁县| 普定县| 根河市| 呼伦贝尔市| 麻栗坡县| 梨树县| 彩票| 衡阳市| 星子县| 鸡西市| 昭觉县| 普洱| 驻马店市| 炉霍县| 彭山县| 湖南省| 白玉县| 中方县| 苏尼特右旗| 金坛市| 五台县| 乌审旗| 宁晋县| 西宁市| 上饶市| 阜南县| 博野县| 梧州市| 望都县| 莱西市| 邮箱| 滨州市| 布尔津县| 龙陵县| 汶上县| 日土县| 乌拉特中旗| 五家渠市| 仪征市|