none
大一学生算法求助 RRS feed

  • 问题

  • c语言给你m个按照升序排列的实数,从中任意选取n个求积,要求输出最小积(n<等于m)不知道算法要怎么弄

    谢谢啦

    2015年12月17日 11:02

全部回复

  • 你好,

    这里是VC++论坛旨在帮助大家解决C++程序问题,请问你的程序有什么问题吗?

    你的需求不是很详细,n的条件是什么?m个实数是随机的吗?有负数吗?如果有负数,所有负数的乘积应该是最小的吧。或者没有负数,只要乘数有零了结果就是零了。

    May


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年12月21日 8:55
  • 谢谢了 这里面有负数  最小的不应该是绝对值最大 并且是负的吗  应该不是所有负数的乘积吧
    2016年1月8日 15:24
  • 取出最大的负数 min ,和 最小的正数 max。(如果没有负数,则执行B;如果没有正数,则执行C)

    A1. 取出 n-2 个绝对值最大的不为0的数字相乘,得到结果 result。如果等于 0,那么最小乘积就是 0.

    A2. 取出绝对值最大的数 x,如果 x 是 0,那么result *= min * max ,如果 result < 0,那么result就是结果,否则结果是0。如果 x 不是0,那么 result 乘以 x。

    A3. 如果 result 大于 0,则取最小的负数 y ,如果没有或者比 min 大,那么结果乘以 min,否则乘以 y;如果 reulst 小于 0,则取最大的正数 y,如果没有或者比 max 小,那么结果乘以 max,否则乘以 y。

    B. 如果数组中存在0,那么结果就是0,如果数组不存在0,取 n 个最小的数相乘。

    C. 取 n 个最小的不为 0 的数相乘,如果只有0可以乘,那么结果就是0。







    2016年1月9日 1:16