* **Во всех задачах этого листка !!запрещается!! пользоваться !!циклами и глобальными переменными.!!** * **В первых пяти задачах !!запрещается!! использовать переменные в рекурсивных функциях.** * **Ноль присоединяется к множеству натуральных чисел.**
%%(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. Такой же треугольник вершиной вверх.
//__Примечание:__ Точки в примерах поставлены вместо пробелов исключительно из-за своеобразия формата вако-вики.//
**6. ("Ханойские башни") ** Есть три стержня **//A//**, **//B//**, и **//C//**. На стержень **//A//** надето **//n//** дисков, причем диски отличаются размером и лежат меньший на большем. Задача состоит в том, чтобы перенести все диски со стержня **//A//** на стержень **//C//**, пользуясь стержнем **//B//**, как вспомогательным, За один раз разрешается переносить только один диск, причём нельзя класть больший диск на меньший. Написать программу, которая воспроизведет инструкцию по порядку переноса дисков. Каждая инструкция записывается в формате: ## <имя стержня, откуда переносится диск>## **->** ##<имя стержня, куда переносится диск>##
//__Примечание:__ желательно найти два решения этой задачи: (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