最大乘积问题
程序员文章站
2022-05-07 12:08:30
...
题目描述
输入n个元素组成的序列s,找出一个乘积最大的连续子序列,输出最大乘积的值。如果这个最大乘积不是正数,输出0。n小于18,每个元素值的绝对值不大于10。
输入
先输入n的值,再依次输入n个数的序列,遇到文件末尾结束。
输出
在一行输出最大乘积的值。
样例输入
5
2 5 -1 2 -1
样例输出
20
当看到这道题的时候,我想的是先判断有几个负数,如果偶数个负数,则直接遍历乘到最后,奇数个则乘到奇数个数减一个,但是又一想,不对,可以是乘一个负数后面的,也可以是乘一个负数前面的,也可以是中间的。
后来,看到这个代码,我就恍然大悟了,从数组第一个数遍历循环,然后再从这个数开始遍历循环。
参考代码
#include<stdio.h>
int main()
{
int n,cj=1,i,j,max=-1;
int a[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
cj=1;
for(j=i;j<n;j++)
{
cj=cj*a[j];
if(cj>max) max=cj;
}
}
if(max<0) printf(“0”);
else printf("%d",max);
return 0;
}
————————————————
版权声明:本文为CSDN博主「chenmoan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41961380/article/details/83990841
上一篇: Androi开发的一些总结
推荐阅读
-
MSSQL 多字段根据范围求最大值实现方法
-
Python利用带权重随机数解决抽奖和游戏爆装备问题
-
最大K个数问题的Python版解法总结
-
世界最大的鲨鱼排行榜 鲸鲨位列第一,体型重达21.5吨
-
Python2.x版本中基本的中文编码问题解决
-
Java基于代理模式解决红酒经销问题详解
-
jdbc连接sql server数据库问题分析
-
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决
-
使用xp_cmdshell注销Windows登录用户(终端服务器超出最大连接数)
-
MySql .frm数据库文件导入的问题