Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2021, 14:00   #1
Radon33
Пользователь
 
Регистрация: 22.10.2021
Сообщений: 34
По умолчанию Объясните несколько строк кода

Код:
static long Recursia(int N)
        {
            if (N == 2)
            {
                return N;
            }
            return N + Recursia(N - 2);
        }
        static long F(int N)
        {
            if (N < 2)
            {
                throw new ArgumentOutOfRangeException();
            }
            if (N % 2 == 1)
            {
                --N;
            }
            return Recursia(N);
        }
/////////////////////////////////////////////////////////////////////////////////////////////////       
        static int[] mas = { 1, 5, 10, 15, 20, 25 };

        // Возвращаем сумму элементов в массив mas1[0...N-1] с использованием рекурсии
        static int Sum(int[] mas1, int N)
        {
            if (N <= 0)
                return 0;
            return Sum(mas1, N - 1) + mas1[N - 1];
        }
        static void Main()
        {
            Console.WriteLine("Введите конец последовательности N");
            int num = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Сумма четных чисел от 2 до N: " + F(num));
            Console.ReadKey();
            Console.WriteLine("Сумма элементов массива: " + Sum(mas, mas.Length));
            Console.ReadKey();
        }
    }
Объясните, пожалуйста, эти строки:
Код:
static long F(int N)
        {
            if (N < 2)
            {
                throw new ArgumentOutOfRangeException();
            }
            if (N % 2 == 1)
            {
                --N;
            }
            return Recursia(N);
        }
Вот само задание: Найти сумму четных чисел от 2 до N с помощью рекурсивного метода
Radon33 вне форума Ответить с цитированием
Старый 24.11.2021, 14:06   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Так оно же просто читается на англ.
Код:
static long F(int N)
        {
            если (N < 2)
            {
                выбросить исключение
            }
            если остатоr от деления N на 2 == 1
            {
                уменьшить на 1 N
            }
            вызвать Recursia(N);
        }
ForenLi вне форума Ответить с цитированием
Старый 24.11.2021, 14:25   #3
Radon33
Пользователь
 
Регистрация: 22.10.2021
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Radon33 Посмотреть сообщение
throw new ArgumentOutOfRangeException();
Мне вот это не понятно, что делает
Radon33 вне форума Ответить с цитированием
Старый 24.11.2021, 14:28   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

https://docs.microsoft.com/ru-ru/dot...ls/exceptions/
ForenLi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объясните фрагмент кода ka11n Общие вопросы C/C++ 4 04.09.2014 16:27
Объясните содержание этого кода djager4723 Общие вопросы по Java, Java SE, Kotlin 0 22.09.2012 14:12
Объясните часть кода (Delphi) Начинающий програм Помощь студентам 2 29.03.2012 20:49
Доделать программу на Delphi 7 (несколько строк кода) koysara Фриланс 4 12.10.2010 02:43