За последние 24 часа нас посетили 9502 программиста и 684 робота. Сейчас ищут 269 программистов ...

Рекурсивная функция

Тема в разделе "Сделайте за меня", создана пользователем Артур Шевцов, 3 ноя 2017.

  1. Артур Шевцов

    Артур Шевцов Новичок

    С нами с:
    30 окт 2017
    Сообщения:
    13
    Симпатии:
    0
    Надо написать рекурсивную функцию, которая будет принимать 2 параметра: a и b - и возвращать число a в степени b
    function fac ($a){
    if ($a <= 1) return 1;
    return $a * fac($a,$b - 1);
    }
    echo fac(5);
    ?>
    Помогите пожалуйста.
     
  2. MouseZver

    MouseZver Зэк
    [ БАН ]

    С нами с:
    1 апр 2013
    Сообщения:
    5.145
    Симпатии:
    836
    Адрес:
    Лень
    пропиши второй аргумент во функции
     
    sense1 нравится это.
  3. ashifin

    ashifin Новичок

    С нами с:
    16 мар 2018
    Сообщения:
    1
    Симпатии:
    0
    function fac ($a , $b){ // забыл указать вторую переменную
    if ($b == 0) return 1; // нужно $b привести к нулю
    return $a * fac($a, $b - 1);
    }
    echo fac(5, 2); // любые два числа
    Но для отрицательных чисел нужно еще дописывать код
     
  4. pro100blich

    pro100blich Новичок

    С нами с:
    10 янв 2019
    Сообщения:
    1
    Симпатии:
    0
    Объясните поэтапно как происходит рекурсия?
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.135
    Симпатии:
    1.744
    Адрес:
    :сердА
    1) Функция начинает исполнение;
    2) Функция, на этапе исполнения, при определенных условиях, вызывает сама себя, либо возвращает результат своей работы;

    В итоге сначала мы рекурсивно закапываемся в алгоритм, а потом "собираем урожай", накапливая результаты.
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    6.282
    Симпатии:
    1.169
    Гугли "стек вызовов". Поймёшь, что это такое, поймёшь, как работает рекурсия