Задача №4 - Вывести на экран n-ное число Фибоначчи

Задачи из этого этого списка.

<?php
/*Вывести на экран n-ное число Фибоначчи.*/

    $N = 20;
    $arr = array();
       
    # Объявляем 2 первых элемента последовательности Фибоначчи
    
    $arr[0] = 0;
    $arr[1] = 1;
    
    # Заполняем массив числами последовательности Фибоначчи
    
    for($i = 0; $i <= $N; $i++)
    {
        $arr[$i+2] = $arr[$i] + $arr[$i+1];
    }
    
    # Выводим содержимое массива
    
    foreach( $arr as $value )
    
    echo $value . '<br />';     
?>
melisa's picture

  1. $arr = array();

    Здесь можно использовать более короткий синтаксис для инициализации массива:

    $arr = [];
  2. $arr[0] = 0;
    $arr[1] = 1;

    Здесь не обязательно указывать в скобках номер элемента, вы же присваиваете значения последовательно, начиная с первого. Указывать индекс было бы целесообразно, если вы хотели бы создать "дырки" в массиве, или заменить один другим:

    $arr[0] = 0;
    $arr[3] = 1;
    $arr[3] = 5;
  3. И всё-таки вернёмся к условию задачи: какой же число N-ное? Если вам удобно, выводите всю последовательность на экран, но ниже выведите искомое число.
Pavel1989's picture

<?php
/*Вывести на экран n-ное число Фибоначчи.*/

$N = 10;
$arr = [1, 0];

# Формируем последовательность Фибоначчи 
        
for ($i = 2; $i < $N; $i++) {
    $arr[] = $arr[$i-1] + $arr[$i-2]; 
}
    
# Выводим последовательность Фибоначчи 

echo "Последовательность Фибоначчи:". '<br />';
    
foreach ( $arr as $value ) {
    echo $value . '<br />';
}

echo '<br />';

#Выводим n-ное число Фибоначчи

echo "N-ное число Фибоначчи: " .$arr[$N-1];     
?>
melisa's picture

я просто запустила, выводится:

Последовательность Фибоначчи:
1
0
1
1
2
3
5
8
13
21

N-ное число Фибоначчи: 21

  1. Последовательность Фибоначчи не такая.
  2. Лучше выводите текст, например, "5-е число Фибоначчи", а не "N-ое число Фибоначчи", так будет понятнее, какое требовалось, и какое получилось. На данный момент, неправильная сама последовательность, и N-й член, выведенный отностительно неё, тоже.

Не забывайте запускать свой код. Тогда бы вы сами обратили внимание на эти ошибки.

Pavel1989's picture

<?php
/*Вывести на экран n-ное число Фибоначчи.*/

$N = 10;
$arr = [0, 1];

# Формируем последовательность Фибоначчи 
        
for ($i = 2; $i < $N; $i++) {
    $arr[] = $arr[$i-1] + $arr[$i-2]; 
}
    
# Выводим последовательность Фибоначчи 

echo "Последовательность Фибоначчи при N = ".$N.":".'<br />';
    
foreach ( $arr as $value ) {
    echo $value . '<br />';
}

echo '<br />';

#Выводим n-ное число Фибоначчи

echo $N. "-е число Фибоначчи: " .$arr[$N-1];     
?>
melisa's picture

принято