Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Numero mancante da sequenza

    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

  2. #2
    Utente di HTML.it L'avatar di bode
    Registrato dal
    Feb 2007
    Messaggi
    304
    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");
           }
      }


  3. #3
    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");
           }
      }

    Ti ringrazio per la risposta, l'ho provato ma mi stampa a video un sacco di numeri, dovrei esermela svangata così:

    codice:
    $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;
    Dove dovrebbe restituire: Numero mancante: 5

  4. #4
    Utente di HTML.it L'avatar di bode
    Registrato dal
    Feb 2007
    Messaggi
    304
    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");
           }
      }

    Avevo sbagliato solo la differenza che dava -1 logicamente perche facevo la sottrazione del termine piu piccolo con quello piu' grande...ora funziona;

  5. #5
    Originariamente inviato da bode
    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");
           }
      }

    Avevo sbagliato solo la differenza che dava -1 logicamente perche facevo la sottrazione del termine piu piccolo con quello piu' grande...ora funziona;
    Ti ringrazio, ora vedo quale adottare.

    Buon lavoro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.