我写了一段程序看看 第一个文件Counter.java文件: package demo;import java.util.Vector;/** * * @author Administrator */ public class Counter { private int[] intAry = new int[]{ 5 , 6 , 7 , 8 , 9 };
public int getMost( ){ Vector<Vector<Integer>> values = this.getTwoNumber(); int result = 0 ; for( Vector<Integer> value : values ){ int firstNumber = value.get( 0 ); int secondNumber = value.get( 1 ); int product = firstNumber * secondNumber; System.out.println( firstNumber + "*" + secondNumber + "=" + product ); if( product > result ){ result = product; } } return result; } private Vector<Vector<Integer>> getTwoNumber(){ Vector<Vector<Integer>> result = new Vector<Vector<Integer>>(); int[] tempAry = new int[intAry.length]; //可以肯定不论怎样,我们可以把五个数分为3、2两组,每组都按数值从大到小的顺序排列,方可保证最大 //第一组有两个数,我们共有10种取法
for( int i = 0 ; i < tempAry.length ; i ++ ){ for( int j = i+1 ; j < tempAry.length ; j ++ ){ Vector<Integer> res = new Vector<Integer>(); for( int len = 0 ; len < intAry.length ; len ++ ){ //不能用tempAry=intAry代替此处for循环 tempAry[len] = intAry[len]; } int secondNumber = tempAry[i]; tempAry[i] = 0 ; secondNumber += tempAry[j] * 10 ; tempAry[j] = 0 ; int firstNumber = 0; for( int a : tempAry ){ if( a != 0 ){ firstNumber /= 10; firstNumber += a * 100; } } res.add( firstNumber ); res.add( secondNumber ); result.add(res); } } return result; } } 第二个文件Main.java: package demo;/** * * @author Administrator */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { Counter counter = new Counter(); int result = counter.getMost(); System.out.println( "The last Result is : " + result ); }}结果输出: 987*65=64155 986*75=73950 976*85=82960 876*95=83220 985*76=74860 975*86=83850 875*96=84000 965*87=83955 865*97=83905 765*98=74970 The last Result is : 84000
第一个文件Counter.java文件:
package demo;import java.util.Vector;/**
*
* @author Administrator
*/
public class Counter {
private int[] intAry = new int[]{ 5 , 6 , 7 , 8 , 9 };
public int getMost( ){
Vector<Vector<Integer>> values = this.getTwoNumber();
int result = 0 ;
for( Vector<Integer> value : values ){
int firstNumber = value.get( 0 );
int secondNumber = value.get( 1 );
int product = firstNumber * secondNumber;
System.out.println( firstNumber + "*" + secondNumber + "=" + product );
if( product > result ){
result = product;
}
}
return result;
}
private Vector<Vector<Integer>> getTwoNumber(){
Vector<Vector<Integer>> result = new Vector<Vector<Integer>>();
int[] tempAry = new int[intAry.length];
//可以肯定不论怎样,我们可以把五个数分为3、2两组,每组都按数值从大到小的顺序排列,方可保证最大
//第一组有两个数,我们共有10种取法
for( int i = 0 ; i < tempAry.length ; i ++ ){
for( int j = i+1 ; j < tempAry.length ; j ++ ){
Vector<Integer> res = new Vector<Integer>();
for( int len = 0 ; len < intAry.length ; len ++ ){
//不能用tempAry=intAry代替此处for循环
tempAry[len] = intAry[len];
}
int secondNumber = tempAry[i];
tempAry[i] = 0 ;
secondNumber += tempAry[j] * 10 ;
tempAry[j] = 0 ;
int firstNumber = 0;
for( int a : tempAry ){
if( a != 0 ){
firstNumber /= 10;
firstNumber += a * 100;
}
}
res.add( firstNumber );
res.add( secondNumber );
result.add(res);
}
}
return result;
}
}
第二个文件Main.java:
package demo;/**
*
* @author Administrator
*/
public class Main { /**
* @param args the command line arguments
*/
public static void main(String[] args) {
Counter counter = new Counter();
int result = counter.getMost();
System.out.println( "The last Result is : " + result );
}}结果输出:
987*65=64155
986*75=73950
976*85=82960
876*95=83220
985*76=74860
975*86=83850
875*96=84000
965*87=83955
865*97=83905
765*98=74970
The last Result is : 84000