查找数组中每个元素的最大整数函数之和(优化)

时间:2017-08-24 10:28:59

标签: algorithm math language-agnostic floor

给定数组说a,数字说x,任务是编写一个程序,以便在x被分配给每个元素时得到每个元素的最大整数函数的总和a的元素。

a = [1,2,3,4,5]

result = gif(1/x) + gif(2/x) + gif(3/x) + gif(4/x), gif(5/x)

这可以通过循环轻松完成,但我想知道是否有一种方法可以更快更有效地完成上述任务(不使用循环)。

2 个答案:

答案 0 :(得分:1)

当结果取决于各个值并且您对它们一无所知时,不使用循环就不能处理数组。这是一个普遍且不可避免的规则。

答案 1 :(得分:0)

如果你真的想避免循环,我想它可以写成一个递归函数,但我不希望它漂亮或更快。

如果你提前知道x,那么当元素添加到数组中时,可能会有一些选项可以完成一些工作。

否则速度的最佳选择可能(取决于数组的大小)是拆分数组并且并行使用多个循环然后将结果加起来。

如果您使用的是C ++,那么使用其中一种标准算法可能比您明确编写的循环更快。