春风博客

春天里,百花香...

导航

<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)

个人软件下载

我的其它博客

我的邻居们

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

将5,6,7,8,9添入到算式 _ _ _ * _ _ 中,要求求出最大乘积的结果和算式

package com.sitinspring;

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

/**
 * 将5,6,7,8,9添入到下面的算式中,使得他们的积有最大值
 * _ _ _ * _ _ (即三位数乘以两位数的形式),要求求出最大乘积的结果和算式。
 * 
@author sitinspring(junglesong@gmail.com)
 * 
@since 2008-6-11 上午10:17:57
 * @vsersion 1.00 创建 sitinspring 2008-6-11 上午10:17:57
 
*/

public class MaxMultiResult{
    
/**
     * 存储全排列后数组的链表
     
*/

    
private List<Integer[]> ls;
    
    
/**
     * 构造函数
     * 
@param arr
     
*/

    
public MaxMultiResult(Integer[] arr){
        ls
=new LinkedList<Integer[]>();
        
        
// 进行全排列,将排列后的结果放入链表
        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;
            
// 输出临时结果
            System.out.println("乘积为"+multiResultTmp+" 算式为:"+op1Tmp+"*"+op2Tmp);
            
            
if(multiResultTmp>multiResult){
                multiResult
=multiResultTmp;
                op1
=op1Tmp;
                op2
=op2Tmp;
            }

        }

        
        
// 输出最大乘积,乘数,被乘数
        System.out.println("最大乘积为"+multiResult+" 算式为:"+op1+"*"+op2);
    }

    
    
/**
     * 全排列,将排列结果变成新数组存入链表
     * 
@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{
            
// 创建新数组
            Integer[] arrNew=new Integer[arr.length];            
            
for(int i=0;i<arrNew.length;i++){
                arrNew[i]
=new Integer(arr[i]);
            }

            
            
// 将新数组放入链表
            ls.add(arrNew);
            
            
// 输出新数组
            /*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);
    }

}

输出结果:
乘积为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 阅读(906) 评论(0)  编辑  收藏 所属分类: 算法数据结构


只有注册用户登录后才能发表评论。


网站导航:
 
sitinspring(http://www.blogjava.net)原创,转载请注明出处.