компьютерный вопрос

Неясно, что именно хотели получить, но по-идее там просто нужно убрать второй вызов document.write и все ))
Edit fiddle - JSFiddle
function f(counter){
counter--;
document.write(counter + '');
if (counter != 0){
f(counter);
}
}

f(2);

Тогда она сама себя вызывает и все ))
 
Пусть тут будет. Можно как подробное пособие по инсталляции системы, любой, рассматривать.
 
Может кто помочь с рекурсией?
Почему выводит 1 - 0 - 1?
HTML:
<!doctype html>
<meta charset='utf-8'>
<script>
    function f(counter){
        counter--;
        document.write(counter + '<br/>');
        if (counter != 0){
            f(counter);
            document.write(counter + '<br/>');
        }
    }
  
    f(2);
</script>
Условный оператор надо в начале функции поставить.
 
Код:
<!doctype html>
<meta charset='utf-8'>
<script>
    function f(counter){
    if (counter != 0){
        document.write(counter + '<br/>');
        counter--;
        f(counter);

        }
   else
    document.write(counter + '<br/>');

    }

    f(2);
</script>

Я бы так сделал, и тогда будет вывод 2 1 0. Хотя вывод уменьшающейся последовательность лучше сделать без рекурсии вообще, просто за счет цикла.
 
Последнее редактирование:
Я бы так сделал, и тогда будет вывод 2 1 0. Хотя вывод уменьшающейся последовательность лучше сделать без рекурсии вообще, просто за счет цикла.
Понял, спасибо. Но надо было просто разобрать задание. Код не мной написан. Я, вот, не понял почему он выводит в конце единицу.
 
Понял, спасибо. Но надо было просто разобрать задание. Код не мной написан. Я, вот, не понял почему он выводит в конце единицу.
Прогамма выходит из рекурсии здесь, когда counter равен 1. Вышла из рекурсии, сразу же вывод counter, который равен единицы, так как каждый вызов рекурсивной функции создает свою копию counter.
f(counter); \\здесь counter равен 1. Внутри функции он уменьшается до 0.
document.write(counter + '<br/>'); Однако здесь counter все равно 1, так как внутри функции f была создана своя локальная переменная, которая уменьшилась до 0, "внешний" же counter равен 1.
 

Новые комментарии

LGBT*

В связи с решением Верховного суда Российской Федерации (далее РФ) от 30 ноября 2023 года), движение ЛГБТ* признано экстремистским и запрещена его деятельность на территории РФ. Данное решение суда подлежит немедленному исполнению, исходя из чего на форуме будут приняты следующие меры - аббривеатура ЛГБТ* должна и будет применяться только со звездочкой (она означает иноагента или связанное с экстремизмом движение, которое запрещено в РФ), все ради того чтобы посетители и пользователи этого форума могли ознакомиться с данным запретом. Символика, картинки и атрибутика что связана с ныне запрещенным движением ЛГБТ* запрещены на этом форуме - исходя из решения Верховного суда, о котором было написано ранее - этот пункт внесен как экстренное дополнение к правилам форума части 4 параграфа 12 в настоящее время.

Назад
Сверху