Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачник С++ часть 1.doc
Скачиваний:
1
Добавлен:
15.11.2019
Размер:
1.28 Mб
Скачать

П. 3. Рекурсивные функции.

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

  1. Написать программу, получающую число и вычисляющую факториал n!.

В программе должны быть использованы следующие функции:

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает int n, , получает его с клавиатуры; 2. передаёт n как параметр функции fact; 3. выводит на экран значение fact(n).

Функция fact – рекурсивная функция, получающая int n как параметр, вычисляющая и возвращающая его значение функции inout.

Программа должна выводить сообщение в случае недостаточности выбранного типа для хранения числа n!. Использовать типы: int, unsigned int, long int, unsigned long int.

  1. Написать программу, получающую числа , и вычисляющую биномиальный коэффициент .

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает , получает их с клавиатуры; 2. передаёт n, m как параметры функции bin; 3. выводит на экран значение bin(n,m).

Функция bin: 1. получает параметры n, m; 2. вычисляет биномиальный коэффициент с помощью формулы:

,

вызывая функцию fact; 3. возвращает значение биномиального коэффициента.

Функция fact – рекурсивная функция, получающая int n как параметр, вычисляющая и возвращающая его значение.

  1. Написать программу, получающую числа , и вычисляющую биномиальный коэффициент .

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает , получает их с клавиатуры; 2. передаёт n, m как параметры функции bin; 3. выводит на экран значение bin(n,m).

Функция bin – рекурсивная функция: 1. получает параметры n, m; 2. вычисляет биномиальный коэффициент с помощью рекуррентных соотношений:

,

;

3. возвращает вычисленное значение.

  1. Написать программу, получающую числа , и вычисляющую .

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает , получает их с клавиатуры; 2. передаёт n, m как параметры функции ; 3. выводит на экран значение .

Функция gcd – рекурсивная функция: 1. получающая int n, m как параметры; 2. вычисляющая - наибольший общий делитель чисел n и m, c помощью рекуррентных соотношений:

, ,

для ;

3. возвращает вычисленное значение.

  1. Написать программу, получающую числа , и вычисляющую число Стирлинга первого рода .

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает , получает их с клавиатуры; 2. передаёт n, m как параметры функции ; 3. выводит на экран значение .

Функция stir1 – рекурсивная функция: 1. получающая int n, m как параметры; 2. вычисляющая число с помощью рекуррентных соотношений:

,

;

3. возвращает вычисленное значение.

  1. Написать программу, получающую числа , и вычисляющую число Стирлинга второго рода .

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает , получает их с клавиатуры; 2. передаёт n, m как параметры функции ; 3. выводит на экран значение .

Функция stir2 – рекурсивная функция: 1. получающая int n, m как параметры; 2. вычисляющая число с помощью рекуррентных соотношений:

,

;

3. возвращает вычисленное значение.

  1. Написать программу, получающую числа , и вычисляющую сумму биномиальных коэффициентов:

.

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает числа , получает их с клавиатуры; 2. передаёт n, m как параметры функции ; 3. выводит на экран значение .

Функция : 1. вызывает функцию ; 2. вычисляет сумму ; 3. возвращает вычисленную сумму.

Функция bin – рекурсивная функция: 1. получает параметры n, m; 2. вычисляет биномиальный коэффициент с помощью рекуррентных соотношений:

,

.

  1. Написать программу, получающую числа и вычисляющую сумму наибольший общих делителей:

= .

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает , получает их с клавиатуры; 2. передаёт n, m как параметры функции ; 3. выводит на экран значение .

Функция : 1. вызывает функцию ; 2. вычисляет сумму ; 3. возвращает вычисленную сумму.

Функция gcd – рекурсивная функция: 1. получающая int n, m как параметры; 2. вычисляющая с помощью рекуррентных соотношений:

, ,

для ;

3. возвращает вычисленное значение.

  1. Написать программу, получающую число и выводящую на экран таблицу биномиальных коэффициентов.

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает , получает его с клавиатуры; 2. передаёт n как параметр функции .

Функция вызывает функцию , получает значения биномиальных коэффициентов и выводит их на экран в виде таблицы:

r=0

r=1

r=2

r=3

r=4

n=0

n=1

n=2

n=3

Рекурсивная функция bin определена в задаче №3.

  1. Написать программу, получающую число int n, и выводящую на экран таблицу чисел Стирлинга первого рода .

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает , получает его с клавиатуры; 2. передаёт n как параметр функции .

Функция вызывает функцию , получает значения чисел Стирлинга первого рода и выводит их на экран в виде таблицы:

r=0

r=1

r=2

r=3

r=4

n=0

n=1

n=2

n=3

Рекурсивная функция определена в задаче № 5.

  1. Написать программу, получающую число int n, и выводящую на экран таблицу чисел Стирлинга второго рода .

Функция main: 1. вызывает функцию inout; 2. выводит запрос на продолжение работы и в соответствии с ответом пользователя производит дальнейшие действия.

Функция inout: 1. запрашивает , получает его с клавиатуры; 2. передаёт n как параметр функции .

Функция вызывает функцию , получает значения чисел Стирлинга первого рода и выводит их на экран в виде таблицы:

r=0

r=1

r=2

r=3

r=4

n=0

n=1

n=2

n=3

Рекурсивная функция определена в задаче № 6.