====%%(wacko wrapper=text wrapper_align=center) Рекурсия. %%==

  * **Во всех задачах этого листка !!запрещается!! пользоваться !!циклами и глобальными переменными.!!**
  * **В первых пяти задачах !!запрещается!! использовать переменные в рекурсивных функциях.**
  * **Ноль присоединяется к множеству натуральных чисел.**

%%(wacko wrapper=text wrapper_align=center) ===== Задачи == %%

** 1.**

**в первых трех пунктах этой задачи разрешается использовать !!лишь одну рекурсивную функцию с одним параметром.!!**

Для заданного натурального **//n//** вывести все числа от 1 до **//n//**:
  a. в обратном порядке.
  a. в прямом порядке.
  a. сперва в обратном порядке, а затем в прямом.
  a. сперва в прямом порядке, а затем в обратном, используя //только// дополнительную рекурсивную функцию.
  a. сперва в прямом порядке, а затем в обратном, используя //только// дополнительный параметр.
  a. сперва в обратном порядке, а затем в прямом только четные.



** 2.**
  i. Написать рекурсивный вариант функции возведения в натуральную степень.
  i. Написать функцию, вычисляющую произведение двух натуральных чисел. (операцией умножения пользоваться запрещается.)
  i. Написать рекурсивный вариант функции возведения в натуральную степень, используя только операции прибавления и вычитания единицы (++ и — соответственно).


** 3.**
Для заданного **//n//** вычислить **//n//** –й член последовательности Фибоначчи.

**4.**
Для заданного натурального **//n//** и **//b//** (1 < **//b//** < 11) вывести запись числа **//n//** в системе счисления с основанием **//b//**.

**5.**
  a. Для заданных натуральных **//m//** и **//n//** вывести прямоугольник **//m//** на **//n//**.
  a. Для заданного натурального **//n//** прямоугольный равнобедренный треугольник с прямым углом слева вверху и с катетами равными **//n//**.
  a. Для заданного натурального **//n//** прямоугольный равнобедренный треугольник с прямым углом слева внизу и с катетами равными **//n//**.
  a. Для заданного натурального **//n//** равнобедренный треугольник с вертикальным основанием слева, равным 2**//n//** - 1.
  a. Для заданного натурального **//n//** равнобедренный треугольник вершиной вниз с высотой **//n//** и основанием 2**//n//**-1.
  a. Такой же треугольник вершиной вверх.


//**Примеры:**//
##""..***********.....*******...*...........*.......*************..........*.......""##
##""..***********.....******....**..........**.......***********..........***......""##
##""..***********.....*****.....***.........***.......*********..........*****.....""##
##""..***********.....****......****........****.......*******..........*******....""##
##""..***********.....***.......*****.......***.........*****..........*********...""##
##""..***********.....**........******......**...........***..........***********..""##
##""..***********.....*.........*******.....*.............*..........*************.""##
##""...............................................................................""##
##""......(a)........(b).........(c).......(d)...........(e)..............(f)......""##
##""...m=11,n=7;.....n=7;........n=7;......n=4;..........n=7;.............n=7;.....""##



//__Примечание:__ Точки в примерах поставлены вместо пробелов исключительно из-за своеобразия формата вако-вики.//

**6. ("Ханойские башни") **
Есть три стержня **//A//**, **//B//**, и **//C//**. На стержень **//A//** надето **//n//** дисков, причем диски отличаются размером и лежат меньший на большем. Задача состоит в том, чтобы перенести все диски со стержня **//A//** на стержень **//C//**, пользуясь стержнем **//B//**, как вспомогательным, За один раз разрешается переносить только один диск, причём нельзя класть больший диск на меньший.
Написать программу, которая воспроизведет инструкцию по порядку переноса дисков. Каждая инструкция записывается в формате:
## <имя стержня, откуда переносится диск>## **->** ##<имя стержня, куда переносится диск>##

//**Пример**// для **//n//**=2:

**//A//** -> **//B//**
**//A//** -> **//C//**
**//B//** -> **//C//**

//__Примечание:__ желательно найти два решения этой задачи: (a) с использованием дополнительной переменной; (b) с использованием дополнительного параметра //

**7.** //(необязательно)//
Фракталы.
Используя какую-нибудь графическую библиотеку, постройте изображения следующих фракталов:
  a. треугольник Серпинского
  a. квадрат Серпинского
  a. кривая Леви
  a. кривая дракона
  a. снежинка Коха

**8.**
Вывести в порядке возрастания все правильные дроби со знаменателями, не превышающим заданного **//n//**.

**9.**
Найти число сочетаний из //n// по //k// (-1 < //k// < //n//+1 < 60)
  a. -1 < //k// < //n//+1 < 12
  a. -1 < //k// < //n//+1 < 36
     


----
адрес оригинала: ((/OnerXaum/Рекурсия))