【发布时间】:2019-11-18 16:00:17
【问题描述】:
假设我有一个array [10000,5000,1000,1000],我想找到与给定数字最接近的数字总和。抱歉解释不好,但这里有一个例子:
假设我有一个array [10000,5000,1000,1000],我想找到最接近的数字,例如 6000。
那么该方法应该返回 5000 和 1000
另一个例子:我们想要最接近 14000 ,那么他应该返回 10000 和 5000
我在这里尝试过 php,但是当我输入 6000 时出现问题,我应该得到 5000 和 1000
<?php
$arr = [10000,5000,1000,1000];
$x = 6000;
var_dump(eek($x,$arr));
function eek($x,$arr)
{
$index = [];
$counter = 0;
foreach($arr as $val)
{
if($counter + $val <= $x)
{
$counter += $val;
$index[] = $val;
}
elseif($counter + $val >= $x)
{
$counter += $val;
$index[] = $val;
break;
}
}
if($counter == $x)
{
return $index;
}
elseif($counter >= $x)
{
return $index;
}
else
{
return [];
}
}
?>
有人有解决办法吗?
【问题讨论】:
-
这是我工作上的问题,我已经积累了 2 天
-
@N69S 他的作业他有没有试过解决它不是吗?
-
@user3532758,谢谢老兄对我的欣赏……他这么说可能是因为我在这里没有名声,假设我是学生……
-
甚至还有一个 PHP 实现:geeksforgeeks.org/…
-
听起来像是测试驱动开发的绝佳训练集。如果返回其他内容,您尝试调试什么问题?
标签: php combinations