37 lines
948 B
Java
37 lines
948 B
Java
|
package LanQiaoOJ;
|
|||
|
|
|||
|
import java.util.Scanner;
|
|||
|
|
|||
|
/*题目描述
|
|||
|
实现一个算法在数组中找到 3 个数字的最大乘积。介绍如下:
|
|||
|
例如数组 [5, -2, 3, 1, -1, 4] 中 3 个数字的最大乘积为 60。
|
|||
|
输入描述
|
|||
|
第一行为数字N (3≤N≤1000),表示数组元素的个数。
|
|||
|
第二行为数组元素 Ai,−1000≤Ai≤1000。
|
|||
|
输出描述
|
|||
|
输出一行,为 3 个数字的最大乘积。
|
|||
|
*/
|
|||
|
|
|||
|
public class 寻找三个数的最大乘积 {
|
|||
|
static int N=1010;
|
|||
|
static int []a=new int [N];
|
|||
|
|
|||
|
public static void main(String[] args) {
|
|||
|
Scanner sc=new Scanner(System.in);
|
|||
|
int n=sc.nextInt();
|
|||
|
for(int i=0;i<n;i++) {
|
|||
|
a[i]=sc.nextInt();
|
|||
|
}
|
|||
|
int ans=(int)-1e9;//考虑数组中有负数的情况——极限情况
|
|||
|
for(int i=0;i<n;i++) {
|
|||
|
for(int j=i+1;j<n;j++) {
|
|||
|
for(int k=j+1;k<n;k++) {
|
|||
|
ans=Math.max(ans, a[i]*a[j]*a[k]);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
System.out.println(ans);
|
|||
|
}
|
|||
|
|
|||
|
}
|