全排列的应用算法

原创 2012年03月23日 07:49:26
/**
 * 将5,6,7,8,9添加下面的空格里,使他们的积有最大值。
  
  __  __ __  × __ __
 使用穷举法,把5个数字循环判断放入数组,最大的值就是要找的值。

 */
package 基础题;

import java.util.ArrayList;




public class MaxSum {
 staticArrayList<String> ls=new ArrayList<String>();
public static void main(String[] args) {
// TODO Auto-generated method stub
 String str="56789";
 char c[] = str.toCharArray();// 声明一个字符型数组
        int max=0;
        String rs=null;
ArrayList<String> list=sort(c, 0, c.length - 1);
for(int i=0;i<list.size();i++){
String str1=list.get(i).substring(0, 3);
String str2=list.get(i).substring(3);
int result=Integer.parseInt(str1)*Integer.parseInt(str2);
if(max<result){
max=result;
rs=str1+"*"+str2;
}
System.out.println(str1+"*"+str2+"="+result);
}
System.out.print("最大的乘积为:"+max);

}
public static ArrayList<String> sort(char c[],int begin,int end){
String str="";
if(begin==end){//如果begin==end说明数组中的元素交换完毕,可以打印输出
for(int i=0;i<=end;i++){
str+=c[i];
}
   ls.add(str);
//System.out.println();
}else{
for(int i=begin;i<=end;i++){
//将首元素与气候的第i个元素进行交换
char temp=c[begin];
c[begin]=c[i];
c[i]=temp;
//递归循环调用
sort(c,begin+1,end);
//还原数组
c[i]=c[begin];
c[begin]=temp;
}
}
return ls;
}

}

相关文章推荐

全排列应用

题目: 对于1到n的一个全排列,可以根据中间的大小关系插入合适的大于小于符号即‘>’和‘...

字符串应用之全排列

之前在leetcode做过全排列的题目,LeetCode46和LeetCode47分别是不带重复元素和带重复元素的全排列,当时图个简单,直接用STL的next_permutation去做了,这一次把递...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

生成全排列---reflect包的一个应用

生成全排列---一个reflect包的应用 在测试函数时,经常需要生成一个全排列,确保函数可以正确处理所有的输入情况,Go语言的特性以及reflect包的存在,使得在Go语言中实现这样的功能非常容易。...

全排列的生成算法

  • 2013年12月23日 10:19
  • 68KB
  • 下载

全排列(多种算法实现)

  • 2012年10月18日 17:03
  • 35KB
  • 下载

poj2718Smallest Difference【全排列函数应用】

Language: Default Smallest Difference Time Limit: 1000MS   Memory Limit: 65536K ...

全排列算法解析(完整版)

  • 2017年03月06日 13:44
  • 153KB
  • 下载

POj-2718 Smallest Difference--全排列next_permutation()的应用文章标题

POj-2718 Smallest Difference–全排列next_permutation()的应用 next_permutation(s.begin(),s.end())列出下一个较大的组合...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:全排列的应用算法
举报原因:
原因补充:

(最多只允许输入30个字)