package suanfajingsai; import java.util.Scanner; /* * 输入n个元素组成的序列S,找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,输出0(表示无解)。 * 1<=n<=18,-10<=Si<=10。 案例: Sample Input 3 2 4 -3 5 2 5 -1 2 -1 Sample Output 8 20 */ public class Uva11059 { public static long find(int a[]) { long max = 0; for (int i = 0; i < a.length; i++) { long max2 = 1;//乘积最大值 for(int j=i;j<a.length;j++){ max2=max2*a[j]; if(max2>max){ max=max2; } } } if(max<0){ max=0; } return max; } public static void main(String[] args) { int n; Scanner scanner = new Scanner(System.in); n = scanner.nextInt(); int a[] = new int[18]; for (int i = 0; i < n; i++) { a[i] = scanner.nextInt(); } System.out.println(find(a)); } }
找出一个乘积最大的连续子序列
猜你喜欢
转载自blog.csdn.net/qq_37387363/article/details/79269584
今日推荐
周排行