博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最大乘积 Maximun Product
阅读量:5159 次
发布时间:2019-06-13

本文共 751 字,大约阅读时间需要 2 分钟。

最大乘积

  题目链接:

题意:

输入n个元素组成的序列s,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应输出0.

注意格式。

  

Sample Input

3
2 4 -3

5
2 5 -1 2 -1

Sample Output
Case #1: The maximum product is 8.

Case #2: The maximum product is 20.

  分析:

   设置x为最大值y为最小值 ,在枚举更新时,如果a[i]为正,则对应跟新,

 

a[i]为0时,当前最大值,最小值置零,a[i]小于0时,最大的值乘以a[i]后变成最小,

 

相反最小变成最大。

 

1 #include
2 using namespace std; 3 int main() 4 { 5 int i,n,a[20],count=1; 6 while(cin>>n) 7 { 8 long long max=0,x=0,y=0,z; //乘积最大可以为10^18所以防止溢出用long long 9 for(i=0;i
>a[i];11 for(i=0;i
0) 15 { x=x*a[i];16 y=y*a[i];17 if(x==0) x=a[i];18 }else if(a[i]<0) //小于0进行交叉相乘19 {20 z=x*a[i];21 x=y*a[i];22 y=z;23 if(y==0) y=a[i];24 } 25 if(max

 

转载于:https://www.cnblogs.com/fenhong/p/4680623.html

你可能感兴趣的文章
manacher算法
查看>>
中间件介绍
查看>>
两个数组相同元素 做聚合
查看>>
JavaScript_1___简单页面倒计时跳转
查看>>
poj3687拓扑排序
查看>>
Android学习第九天----SQLite
查看>>
[转载]回顾MySpace架构的坎坷之路
查看>>
Linux基础学习
查看>>
python基础-----类和实例
查看>>
我的第一个Linux C 程序
查看>>
C++虚函数表
查看>>
Linux c基础学习
查看>>
Spring核心框架IOC---- Spring项目程序架构---- 面向接口编程
查看>>
事件分发
查看>>
fread 不能读取最后一个数据块
查看>>
Global.asax详解
查看>>
蛇形填数
查看>>
re模块(正则表达式)
查看>>
接口和抽象类有什么区别
查看>>
spring学习笔记(3)——bean配置细节注意
查看>>