Кол. непрерывных чисел

hust0

Здравствуйте, каким способом можно определить количество непрерывных чисел?

К примеру, имеем числа:

1, 2, 3, 4, 7, 9, 10, 11

Надо подсчитать количество непрерывных чисел, где в данном примере количество их составляет 2

1234 – это 1
9,10,11 – это 2

т.е. после 4 обрывается и начинается с 9.

 

Drunkenmunky

Поместить найденные последовательности в новый массив.
Посчитать их количество.

 

hust0

это понятно

 

Drunkenmunky

ОК.

PHP:
  1. <pre>
  2. <?php
  3. $array = array(1, 2, 3, 4, 7, 9, 10, 11);
  4. $new_array = array();
  5.  
  6. for($i = 0, $ni = 0, $sizeof = count($array); $i < $sizeof; $i++)
  7. {
  8. $h = $i 1;
  9. $j = $i + 1;
  10.  
  11.   if($array[$i] 1 == $array[$h] || $array[$i] + 1 == $array[$j])
  12.    {
  13.     $new_array[$ni][] = $array[$i];
  14.    }
  15.  
  16.   if($array[$i] + 1 != $array[$j])
  17.     {
  18.      $ni++;
  19.     }
  20. }
  21.  
  22. print_r($new_array);
  23. echo count($new_array);
  24. ?>
 

MouseZver

PHP:
  1. <?php
  2.  
  3. $a = [
  4.     1,10,3,4,5,9,7,8,11,20,18,16,17
  5. ];
  6.  
  7. sort ( $a, SORT_NUMERIC );
  8.  
  9. print_r ( $a );
  10.  
  11.  
  12.  
  13. $temp = $count = 0;
  14.  
  15. $flag = true;
  16.  
  17. foreach ( $a AS $num )
  18. {
  19.     if ( $temp && $temp == ( $num 1 ) )
  20.     {
  21.         if ( $flag )
  22.         {
  23.             $count++;
  24.            
  25.             $flag = false;
  26.         }
  27.     }
  28.     else
  29.     {
  30.         $flag = true;
  31.     }
  32.    
  33.     $temp = $num;
  34. }
  35.  
  36. echo $count;
PHP:
  1. (
  2.     [0] => 1
  3.     [1] => 3
  4.     [2] => 4
  5.     [3] => 5
  6.     [4] => 7
  7.     [5] => 8
  8.     [6] => 9
  9.     [7] => 10
  10.     [8] => 11
  11.     [9] => 16
  12.     [10] => 17
  13.     [11] => 18
  14.     [12] => 20
  15. )
  16. 3

— Добавлено —

ты че смеешься ? какой к черту count в цикле ?

 

Drunkenmunky

Перечитайте мануал.

 

MouseZver

лять я точку с запятой не увидел. Все отбой.

 

Drunkenmunky

Бывает. Возможно, пора взять линзы потолще?

 

MouseZver

с твоей кашей, тебе линзы не помогут.

 

Drunkenmunky

Ну, да, ну, да. Это же я дебильные статейки из интернета выше мануала ставлю.

 

MouseZver

@Drunkenmunky, короче иди свой мухосранск проверяй.
Дано:

PHP:
  1. $array = array(1,3,4,5,7,8,9,10,11,16,17,18,20);

Результат:

PHP:
  1. <br />
  2. <b>Warning</b>:  Undefined array key 1 in <b>[][]</b> on line <b>11</b><br />
  3. <br />
  4. <b>Warning</b>:  Undefined array key 13 in <b>[][]</b> on line <b>11</b><br />
  5. <br />
  6. <b>Warning</b>:  Undefined array key 13 in <b>[][]</b> on line <b>16</b><br />
  7. (
  8.     [0] => Array
  9.         (
  10.             [0] => 1
  11.         )
  12.  
  13.     [1] => Array
  14.         (
  15.             [0] => 3
  16.             [1] => 4
  17.             [2] => 5
  18.         )
  19.  
  20.     [2] => Array
  21.         (
  22.             [0] => 7
  23.             [1] => 8
  24.             [2] => 9
  25.             [3] => 10
  26.             [4] => 11
  27.         )
  28.  
  29.     [3] => Array
  30.         (
  31.             [0] => 16
  32.             [1] => 17
  33.             [2] => 18
  34.         )
  35.  
  36. )
  37. 4
 

Drunkenmunky

А кто сказал, что это идеальное решение? На коленке лепил.

Код (Text):
  1. if($i != 0 &&
  2. $array[$i] – 1 == $array[$h] ||
  3. $array[$i] + 1 == $array[$j])
 

MouseZver

Да, походу прям в сортире налепил.

 

Drunkenmunky

Кстати, да.

 

MouseZver

PHP:
  1. <br />
  2. <b>Warning</b>:  Undefined array key 13 in <b>[][]</b> on line <b>11</b><br />
  3. <br />
  4. <b>Warning</b>:  Undefined array key 13 in <b>[][]</b> on line <b>16</b><br />
  5. (
  6.     [1] => Array
  7.         (
  8.             [0] => 3
  9.             [1] => 4
  10.             [2] => 5
  11.         )
  12.  
  13.     [2] => Array
  14.         (
  15.             [0] => 7
  16.             [1] => 8
  17.             [2] => 9
  18.             [3] => 10
  19.             [4] => 11
  20.         )
  21.  
  22.     [3] => Array
  23.         (
  24.             [0] => 16
  25.             [1] => 17
  26.             [2] => 18
  27.         )
  28.  
  29. )
  30. 3
 

Drunkenmunky

Так?

Код (Text):
  1.   if($i != 0 &&
  2.   $j != $sizeof + 1 &&
  3.   $array[$i] – 1 == $array[$h] ||
  4.   $array[$i] + 1 == $array[$j])
 

MouseZver

:D

PHP:
  1. <br />
  2. <b>Warning</b>:  Undefined array key 13 in <b>[][]</b> on line <b>11</b><br />
  3. <br />
  4. <b>Warning</b>:  Undefined array key 13 in <b>[][]</b> on line <b>16</b><br />
  5. (
  6.     [1] => Array
  7.         (
  8.             [0] => 3
  9.             [1] => 4
  10.             [2] => 5
  11.         )
  12.  
  13.     [2] => Array
  14.         (
  15.             [0] => 7
  16.             [1] => 8
  17.             [2] => 9
  18.             [3] => 10
  19.             [4] => 11
  20.         )
  21.  
  22.     [3] => Array
  23.         (
  24.             [0] => 16
  25.             [1] => 17
  26.             [2] => 18
  27.         )
  28.  
  29. )
  30. 3
 

Drunkenmunky

Ладно, до локалки доберусь, гляну.

 

MouseZver

hust0

Спасибо кто откликнулся, нашел решение)

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *