×
  • 1. Системы счисления
  • 2. Логические функции
  • 3. Анализ информационных моделей
  • 4. Файловая система и базы данных
  • 5. Кодирование и декодирование. Условие Фано
  • 6. Выполнение и анализ простых алгоритмов
  • 7. Адресация в электронных таблицах
  • 8. Анализ программ с циклами
  • 9. Скорость передачи, объем памяти, время передачи
  • 10. Кодирование, комбинаторика
  • 11. Рекурсивные алгоритмы
  • 12. Адресация в сетях TCP/IP
  • 13. Вычисление количества информации
  • 14. Анализ и выполнение алгоритмов для исполнителя
  • 15. Поиск путей в графе
  • 16. Позиционные системы счисления
  • 17. Запросы в поисковых системах
  • 18. Логические выражения и множества
  • 19. Анализ программы по работе с массивом
  • 20. Анализ программ с циклами
  • 21. Анализ программ с циклами и подпрограммами
  • 22. Динамическое программирование
  • 23. Системы логических уравнений
  • 24. Исправление фрагмента программы и ошибок
  • 25. Программа на обработку массива
  • Спасибо за внимание
  • Разбор задачи № 11. Рекурсивные алгоритмы

    Теория по задаче

    Разбор текущей задачи
    Функции. Определение и вызов функции
    Рекурсия

    Условие задачи

    444) Ниже на трех языках программирования записан рекурсивный алгоритм f.

    def f(x):
        if x<5:
            print(x,end='')
            f(x+1)
            print(x,end='')
    procedure f(x: integer); 
    begin   
      if x < 5 then begin
          write(x);   
          f(x + 1);
          write(x);
      end;  
    end;
    void f(int x) {
      if (x < 5) {
        cout <<x;
        f(x + 1);
        cout <<x;
      }
    }

    Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова f(1). Числа должны быть записаны в том же порядке, в котором они выводятся на экран.