Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/10/2009, 04:31
samu22
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 1 mes
Puntos: 16
Respuesta: Comprobar si tres numeros son consecutivos

Cita:
Iniciado por Tokkara Ver Mensaje
Simple
Código PHP:
Ver original
  1. /*
  2. * bool numerosConsecutivos( int $numero1, int $numero2, int $numero3)
  3. * Devuelve true si los 3 números son consecutivos, false en caso contrario.
  4. */
  5. function numerosConsecutivos($numero1, $numero2, $numero3)
  6. {
  7. return ($numero2-$numero1 == 1 && $numero3-$numero2 == 1) ? true : false
  8. }

Es más:
Código PHP:
Ver original
  1. /**
  2. * bool numeroConsecutivos(int $numero1, int $numero2, int $numero3 ... int $numeroN)
  3. * Devuelve true si todos los números son consecutivos, false en caso contrario
  4. */
  5. function numerosConsecutivos()
  6. {
  7. //Esta función comprobará si todos los números que insertes son consecutivos
  8. $numeros = func_get_args();
  9. $max = sizeof($numeros);
  10. for($i = 0; $i<$max-1 $i++)
  11. {
  12. if($numeros[$i+1]-$numeros[$i] != 1) return false;
  13. }
  14.  
  15. return true;
  16. }
  17.  
  18. if(numerosConsecutivos(1, 2, 3, 4, 5))
  19. echo "numeros consecutivos";
  20. else
  21. echo "numeros no consecutivos";

excelente opcion, yo lo habia pensado asi:
Código PHP:
Ver original
  1. $numeros = array(1,2,3,4,5,6,8);
  2. function consecutivos($array){
  3.     $numAnt = array();
  4.     foreach($array as $pos => $num){
  5.         if($pos>0){
  6.             // se compara desde el segundo elemento de la matris
  7.             // ahora para saber si es un numero consecutivo le sumamos uno al numero anterior si es igual al numero
  8.             // actual guardamos una varible indicando que el numero es consecutivo
  9.             if(($numAnt[($pos-1)]+1)==$num){
  10.                 $return .= $pos.'-> '.$num.' es un numero consecutivo de '.$numAnt[($pos-1)].'<br/>';
  11.             }else{
  12.                 $return .= $pos.'-> '.$num.' <b>no</b> es un numero consecutivo de '.$numAnt[($pos-1)].'<br/>';
  13.             }  
  14.         }
  15.         $numAnt[$pos]=$num;    
  16.     }
  17.     return $return;
  18. }