我是PHP的新手。我被给了以下作为作业: 编写一个名为findMissing的php函数,它接收3个参数。功能必须 确定并返回数字数组中缺少的数字 - 注意:只有一个数字 在系列数字中缺少,你必须找到的数字。所有数字都将是 整数。 ◦$ start:这是一个整数,表示数组可以包含的最小数量。 ◦$ end:这是一个整数,表示数组可以包含的最大数量。 ◦$ numbers:数字介于$ start和$ end之间的数组。这个数组可能没有 被分类。无法保证数组中的第一个或最后一个数字对应 分别为$ start和$ end。 $ start和$ end包含在范围内 数字 例如:findMissing(1,5,array(2,5,1,3));必须返回4作为 缺少号码。数组$ numbers将始终包含$ end - $ start number 元件。
到目前为止,我有以下代码:
function findMissing($start,$end,$numbers)
{
if ($start >0 && $end >0){
for ($x=0; $x<=end; $x++) {
$numbers=array($x);
}
}
foreach ($numbers as $value){
echo $value;
}
}
请帮忙,因为我被困了
答案 0 :(得分:0)
当你遇到问题时,这不仅仅是编程,首先要做的是你需要在头脑中描绘解决方案,看看它是否有效。
鉴于这项任务,我想到了一些想法:
您可以对数组进行排序并循环播放,只要数字不等于前一个数字+ 1,您就可以安全地说previous number + 1
是您丢失的数字。
您可以解决此问题的另一种方法是在$start
到$end
的范围内循环,并检查每个值是否在in_array()
的给定数组中。一旦你遇到一个不值的东西,不用说,这就是你的号码。
如果你的目标不是为了学习,而是为了摆脱那项功课,请发表评论,我会为你写下这个功能。
答案 1 :(得分:0)
哥们!!这是一个简单的解决方案 将$ start和$ end之间的所有数字添加为$ sumAll 并将该数组的所有元素添加为$ sum 现在$ missingNumber = $ sumAll- $ sum !! 这样做会很有趣:)
答案 2 :(得分:-2)
你可以试试这个
<?php
$start = 1;
$end = 5;
$numbers = array(2,5,1,3);
findMissing($start,$end,$numbers);
function findMissing($start,$end,$numbers)
{
$range[$start-1] = 0; // here, it will be $range[0] = 0;
for($i=$start; $i<=$end; $i++)
{
$range[$i] = $range[$i-1]+1;
if(!in_array($range[$i], $numbers))
{
echo '<br> Missing no= '. $i;
//return $i;
}
}
}
?>
希望这会有所帮助......