Buongiorno,
esiste un metodo rapido o qualche funzione che mi sfugge per poter ricavare il primo numero mancante da una data sequenza di numeri, es:
1,2,3,7,8,9,10
dovrebbe restituirmi 4, la volta sucessiva 5, quella dopo 6 e poi 10, 11.....
Grazie
Buongiorno,
esiste un metodo rapido o qualche funzione che mi sfugge per poter ricavare il primo numero mancante da una data sequenza di numeri, es:
1,2,3,7,8,9,10
dovrebbe restituirmi 4, la volta sucessiva 5, quella dopo 6 e poi 10, 11.....
Grazie
Ho buttato giu' questo codice prova a vedere se funziona, sicuramente ci sarà qualcosa da correggere, non ci ho ragionato piu' di tanto!
Codice PHP:$a=array(1,2,3,7,8,9,10);
$l=count($a);
for($i=0;$i<=$l-1;$i++)
{$diff= $a[$i]-$a[$i+1];
if($diff != 1)
{
for($y=1;$y<=$diff;$y++)
{
$x=$a[$i]+$y;
echo("$x");
}
}
}
Ti ringrazio per la risposta, l'ho provato ma mi stampa a video un sacco di numeri, dovrei esermela svangata così:Originariamente inviato da bode
Ho buttato giu' questo codice prova a vedere se funziona, sicuramente ci sarà qualcosa da correggere, non ci ho ragionato piu' di tanto!
Codice PHP:$a=array(1,2,3,7,8,9,10);
$l=count($a);
for($i=0;$i<=$l-1;$i++)
{$diff= $a[$i]-$a[$i+1];
if($diff != 1)
{
for($y=1;$y<=$diff;$y++)
{
$x=$a[$i]+$y;
echo("$x");
}
}
}
Dove dovrebbe restituire: Numero mancante: 5codice:$sequenza = array(1,2,3,4,6,7,8,9); sort($sequenza); $i=0; foreach ($sequenza as &$value) { $i++; echo $value." - ".$i." "; if($i!=$value){$numero_mancante=$i;break;}else{$numero_mancante=0;} } $numero_mancante = ($numero_mancante==0) ? $i+1 : $i; echo "Numero mancante: ".$numero_mancante;
Avevo sbagliato solo la differenza che dava -1 logicamente perche facevo la sottrazione del termine piu piccolo con quello piu' grande...ora funziona;Codice PHP:$a=array(1,2,3,7,8,9,10);
$l=count($a);
for($i=0;$i<=$l-1;$i++)
{$diff= $a[$i+1]-$a[$i];
if($diff != 1)
{
for($y=1;$y<=$diff-1;$y++)
{
$x=$a[$i]+$y;
echo("$x");
}
}
}
Ti ringrazio, ora vedo quale adottare.Originariamente inviato da bode
Avevo sbagliato solo la differenza che dava -1 logicamente perche facevo la sottrazione del termine piu piccolo con quello piu' grande...ora funziona;Codice PHP:$a=array(1,2,3,7,8,9,10);
$l=count($a);
for($i=0;$i<=$l-1;$i++)
{$diff= $a[$i+1]-$a[$i];
if($diff != 1)
{
for($y=1;$y<=$diff-1;$y++)
{
$x=$a[$i]+$y;
echo("$x");
}
}
}
Buon lavoro