C语言,算法问题 输入N个整数(包括零和负数),随机取出其中的n个数,求n个数的最小积。(n<=N

C语言,算法问题输入N个整数(包括零和负数),随机取出其中的n个数,求n个数的最小积。(n<=N<=256)比如输入6-31-5-6372输出-126实现这一个函数,应该... C语言,算法问题
输入N个整数(包括零和负数),随机取出其中的n个数,求n个数的最小积。(n<=N<=256)
比如输入
6 - 3
1 -5 -6 3 7 2
输出
-126
实现这一个函数,应该用一个怎么样的算法或者怎样的思路来写这个?要求是代码不能超过100行。
展开
 我来答
风若远去何人留
2015-12-16 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部
1 应该按照绝对值排序。得到从大到小的a[N]

2 检查a[n-1]是否为0,如果是,那么代表0的个数超过N-n个,最小积必然为0.否则执行3
3 统计排序后,前n个数中负数的个数

1) 负数个数为0,那么看剩余部分是否有负数
如有,选取最大负数替换最小正数,即a[n-1]; 这时前n项乘积为最小。
如果没有,看剩余部分是否有0值,如果有,则最小积为0,

如果剩余部分0和负数都没有,代表整个序列都是正值,那么最小积为最后n项。

2 )负数个数为奇数,那么最小积为前n项乘积。
3) 负数个数为非0偶数,那么看剩余部分是否有正数
这部分还没想清楚,貌似比较麻烦。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式