Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

Язык программирования C#

  1. В начало
  2. Курсы
  3. Весенний семестр
  4. Магистратура
  5. Язык программирования C#
  6. Основы языка C#
  7. Лабораторная работа №7. Рекурсия

Лабораторная работа №7. Рекурсия

Требуемые условия завершения
Открыто с: четверг, 28 марта 2019, 11:55
Срок сдачи: четверг, 28 марта 2019, 13:30

(используем ConsoleApp (Net.Framework))

Во всех заданиях запрещено применять циклы — пользуйтесь рекурсией. (циклы допустимы лишь в функции main()). Для тестирования кода используем модульные тесты

Решения задач оформлять в виде отдельных функций в файле recurcia.cpp . В файле main.cpp необходимо продемонстрировать работу полученных функций.

  1. Найти факториал целого числа. (double Factorial(int n))

    Подсказка

     Факториал числа n равняется 
        1, если n равен нулю или единице, 
        n*(n-1)!, если n>1
    Продемонстрируйте работу подпрограммы в основной программы, выведите на консоль факториалы целых чисел от нуля до десяти.
  2. Написать рекурсивную подпрограмму void IntNumbersPrint(int a, int b), печатающую все целые числа от a до b включительно (a ≤ b, не забудьте проверить с это с помощью assert).

    Подсказка

    Напечатать числа от a до b — 
        напечатать a, 
        напечатать числа от a + 1 до b.
  3. Даны два целых числа a и b. Написать рекурсивную подпрограмму void IntNumbersPrintAD(int a, int b), которая выводит все числа от a до b включительно, в порядке возрастания, если a < b, или в порядке убывания в противном случае.
  4. Даны два целых числа a и b. Написать рекурсивную подпрограмму void IntNumbersPrintAscending(int a, int b), которая выводит все числа от a до b включительно в порядке возрастания, независимо от того, какое из двух чисел a и b больше.
  5. Дано натуральное число n. Написать функцию bool DegreeOfTwo(int a), которая возвращает true, если число n является точной степенью двойки, или false в противном случае.
  6. Даны целые числа a и b. Найти их наибольший общий делитель (int GreatestCommonDivisor(int a, int b)), используя алгоритм Евклида:

    НОД(A, B) = НОД(B, A % B), если B ≠ 0; 
    НОД(A, 0) = A.
  7. Дан список целых чисел. Вычислить сумму его элементов (int ListSum(IList<int> list, int n = 0) ), пользуясь следующим рекурсивным определением:

    Подсказка

    Сумма элементов = 
        первый элемент
        +
        сумма всех остальных элементов.
  8. Дано целое число N ≥ 1. Последовательность Fk чисел Фибоначчи (названа в честь Леонардо Пизанского) определяется следующим образом:
    F1=1,F2=1,Fk=Fk−2+Fk−1,k=3,4,…
    Это целые числа: 1,1,2,3,5,8,13,21,34,55,… Создать функцию int fib(int n, int a = 1, int b = 1), которая возвращает число Фибоначчи под номером n (пользуемся алгоритмом по ссылке). Метод должен принимать только положительные числа (используем Debug.Assert) В задаче удобно воспользоваться вложенной функцией.
  9. Создать функцию int DigProduct(int n), которая возвращает произведение цифр числа.
  10. Создать функцию void PrimeFactors(int n, int k = 2), выводит на все консоль простые множители положительного числа (единица и само исходное число не учитываются, используем цикл).

◄ Домашнее задание №6. Статистическая обработка результатов эксперимента
Лабораторная работа №8. Коллекции ►
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

          • Научные вычисления - 2025

          • ИАБолДанн

          • История инф

          • Data Scince и АД

          • МО (маг ИИ)

          • NLP

          • M1. Artificial Intelligence

          • CSm2Research

          • Мат. модели в МСС

          • НИС

          • Свертки

          • Язык программирования C#

            • Общее

            • Основы языка C#

              • ЗаданиеЛабораторная работа №1. Введение

              • ЗаданиеДомашнее задание №1

              • СтраницаУсловный оператор

              • СтраницаПеречисления и оператор выбора

              • СтраницаЦиклы

              • ЗаданиеЛабораторная работа №2.

              • ЗаданиеДомашнее задание №2

              • ЗаданиеЛабораторная работа №3. Массивы

              • ЗаданиеДомашнее задание №3

              • ЗаданиеЛабораторная работа №4. Последовательности.

              • ЗаданиеДомашнее задание №4

              • ФайлСтроки в C#

              • ФайлКласс StringBuilder

              • ЗаданиеЛабораторная работа №5. Строки

              • СтраницаРегулярные выражения

              • СтраницаЯзык регулярных выражений

              • ЗаданиеДомашнее задание №5. Регулярные выражения.

              • ЗаданиеЛабораторная работа №6. Файлы.

              • ЗаданиеДомашнее задание №6. Статистическая обработка резу...

              • ЗаданиеЛабораторная работа №7. Рекурсия

              • ЗаданиеЛабораторная работа №8. Коллекции

              • ЗаданиеДомашнее задание №7.

            • Объектно-ориентированное программирование

            • Индивидуальное задание

        • Аспирантура

        • Вечернее отделение

        • Другое

        • ОИИ

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ - 24

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
Язык программирования C#
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика