Работаем дома

Форум о заработке в Интернет, фриланс, и о хобби, которое может принести деньги


    Язык программирования С# - Си Шарп.

    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Язык программирования С# - Си Шарп.

    Сообщение автор Admin Ср 4 Дек 2019 - 15:14

    Первое сообщение в теме :

    Сегодня продолжаю (начинаю) снова изучать Си Шарп. Продолжаю потому что уже разбирался в основах и немного понятно. Начинаю - потому что начинаю читать снова, так как подзабыл.  Embarassed

    Что то берут меня сомнения, что я опять осилю книгу. В прошлый раз пару книг прочитал, проводил даже занятия, но многое осталось непонятным ... всё таки учиться без учителя - трудновато. Да и эти грёбанные фигурные скобки выбешивают изрядно, хотя уже и привык к ним немного.   И так поехали....
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Пн 10 Фев 2020 - 16:08

    Задание

    Напишите программу, в которой вычисляется сумма чисел, удовлетворяющих таким критериям:
    при делении числа на 5 в остатке получается 2
    или при делении числа на 3 в остатке получается 1
    Количество чисел в сумме вводится пользователем. Программа отображает числа, которые суммируются и значение суммы.
    Используйте обработку исключений. 



    Решение задачи с оператором цикла while
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            int value=1,sum=0;
            metka1:
            try
            {

                while (value != 0)
                {
                    Console.WriteLine("Введите число \nДля прекращения ввода введите 0");
                    value = Int32.Parse(Console.ReadLine());              
                    if (value%5==2 || value % 3 == 1)
                    {
                        
                        sum += value;                  
                    }
                    else
                    {
                        Console.WriteLine("Число не соответствует критериям");
                        goto metka1;
                    }
                }
                Console.WriteLine("Сумма введённых чисел = " + sum);
            }
            catch
            {
                Console.WriteLine("Некорректное число \nВведите число");
                Console.WriteLine("-------------------------------------------");
                goto metka1;
            }
            Console.ReadKey();
        }
    }

    Получилось немного коряво и с оператором goto , но в этой программе, если пользователь вводит некорректное число, ему пишут, что число некорректно, и запрашивают новое. Ввод чисел также заканчивается вводом 0, после чего выводится сумма чисел. Если ничего не ввели, или ввели букву, пишется об ошибке и запрашивается новый ввод числа.

    решение задачи с циклом for
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            int value=3,sum=0;
            try
            {
                for(int i=0;(value!=0);i++)
                {
                    Console.WriteLine("Введите число \nВвод чисел заканчивается вводом 0");
                    value = Int32.Parse(Console.ReadLine());
                    if(value%5==3 || value % 3 == 1)
                    {
                        Console.WriteLine("число = " + value + "+ ");
                        sum += value;
                    }
                }
                Console.WriteLine("=" + sum);
            }
            catch
            {
                Console.WriteLine("некорректное число");
            }
            Console.ReadKey();      
        }
    }

    Ещё одно решение, хотел сделать так, чтобы вывести в конце все числа, которые используются, но для этого нужно эти числа присваивать переменным, а так как, сколько чисел введёт пользователь неизвестно, то и неизвестно количество переменных, которые необходимо объявлять. Поэтому те числа, которые используются в сложении  выводится в виде число = (само число) + 
    после каждого ввода числа.
    После ввода пользователем нуля, выводится общий итог (сумма всех чисел, которые соответствуют критериям).
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Продолжаем решения задач по языку программирования C#

    Сообщение автор Admin Пн 17 Фев 2020 - 16:39

    Задача

    Напишите программу, в которой создаётся одномерный числовой массив и заполняется числами, которые при делении на 5 дают в остатке 2 (числа 2, 7,12, 17 и так далее)Размер массива вводится пользователей.Предусмотреть обработку ошибки, связанной с вводом некорректного значения.



    Решение задачи
    Код:
    using System;

    class MyClass
    {
        static void Main()
        {
            //объявляем переменные
            int size,number=0;
            try
            {
                //объявляем одномерный массив
                Console.WriteLine("Введите размер массива");
                size = Int32.Parse(Console.ReadLine());
                int[] nums = new int[size];
                //Заполняем массив, не больше заданного размера
                for (int i = 0; i < nums.Length; i++)
                {//пока число не остаётся при делении на 5 в остатке два , идёт перебор значений по возрастанию
                    while (number % 5 != 2)
                    {
                        number++;
                    }//если условие соблюдено, то соответствующей позиции  присваивается число
                    nums[i] = number;
                    //выводится сообщение о позиции и числе
                    Console.WriteLine("Позиция {0} = {1}", i+1, nums[i]);
                    //к числу прибавляется 1, иначе оно подходит под условие, и в следующей позиции оно будет точно такое же
                    number++;
                }                   
            }
            catch
            {
                Console.WriteLine("Введено неверное значение");
            }                         
            Console.ReadKey();
        }

    }

    Думаю не совсем идеальный вариант ,можно написать и короче, но в любом случае условие задачи выполнено.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Пн 17 Фев 2020 - 17:53

    Задача

    Напишите программу, в которой создаётся массив из 11 целочисленных элементов. Массив заполняется степенями двойки - числами 2 в степени 0 =1, 2 в степени 2=4, 2 в степени 3=8 и так далее до 2*10=1024. При заполнении массива учесть, что начальный элемент равен 1, а каждый следующий больше предыдущего в 2 раза. Отобразить массив в консольном окне в прямом и обратном порядке. Размер массива задаётся переменной.



    Решение задачи
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            //Объявляем и инициализируем переменную - размер массива
            int size=11;
            //объявляем переменную для результата возведения в степень
            double rez;
            //Создаём массив
            int[] nums = new int[size];
            //заполняем и показываем индекс со значением массива
            for(int i = 0; i < nums.Length; i++)
            {//применяем из класса Math метод возведения в степень, присваиваем результат переменной
                rez = (Math.Pow(2, i));
                //каждой порядковой позиции присваиваем результ - явно приводим значения в int,
                //так как массив у нас с типом int
                nums[i] = (int)rez;
                //позиции со значениями выводим в консоль
                Console.WriteLine("Position {0} = {1}", i, nums[i]);
                //значение степени увеличиваем на 1                   
            }
            //пустая строка
            Console.WriteLine();
            Console.WriteLine("Вывод массива в обратном порядке");
            //пустая строка
            Console.WriteLine();
            //перебор в обратном порядке
            for (int k=nums.Length-1; k >=0; k--)
            {
                //вывод в консоль
                Console.WriteLine("Position {0} = {1}", k, nums[k]);
            }
            Console.ReadKey();
        }
    }

    В обратном порядке выводится циклом, первому значению k присваивается последний индекс массива (nums.length-1 цикл работает, пока индекс больше равно 0, в счётчике значение уменьшается на 1.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Вт 25 Фев 2020 - 12:58

    Задача

    Напишите программу, в которой создаётся одномерный символьный массив из 10 элементов. Массив заполняется буквами "через одну", начиная с буквы 'a': то есть массив заполняется буквами 'a','c','e','g' и так далее. Отобразите массив в консольном окне в прямом и обратном порядке. Размер массива задаётся переменной.



    Решение задачи
    Код:
    using System;
    class MyProgram
    {
        static void Main()
        {
            //Объявляем и инициализируем размер одномерного массива
            int size = 10;
            //Объявляем и инициализируем первый символ массива
            char value = 'a';
            //Объявляем массив
            char[] array = new char[size];
            //Заполняем массив элементами
           
            for(int i = 0; i < array.Length; i++)
            {
                array[i] = (char)value++;
                value++;
                //выводим на экран                                     
                Console.WriteLine("{0} = {1}", i, array[i]);
            }
            //Пустая строка
            Console.WriteLine();
            //Вывод в обратном порядке
            for (int j = size-1; j >= 0; j--)
            {
                Console.WriteLine("{0} = {1}", j, array[j]);
            }
            //для завершения программы нужно нажать любую кнопку
            Console.ReadKey();
        }
    }

    Может не совсем правильно, так как использовал два раза value++, чтобы значения символов выводились через один. Но, как говорится, задачу можно решить несколькими способами, и чем он короче, тем лучше.

    Так как массив уже наполнен символами, в обратном порядке использовал перебор индексов в обратном порядке. В цикле
    size-1 уменьшаем на единицу,  так как массив от 0 до 9, убавляем значение size на 1. Из за этого же условие ставим >=0, и делаем уменьшающий цикл.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Вт 25 Фев 2020 - 14:11

    Задача

    Напишите программу, в которой создаётся символьный массив из 10 элементов. Массив заполнить большими (прописными) буквами английского алфавита. Буквы берутся подряд, но только согласные (то есть буквы 'A','E' и 'I' при присваивании значений элементам массива нужно пропустить) Отобразите содержимое созданного массива в консольном окне.



    Решение задачи
    Код:
    using System;
    class MyProgram
    {
        static void Main()
        {
            //Объявляем и инициализируем переменную для первого симовла в массиве
            char value = 'A';
            //Создаём массив
            char[] array = new char[10];
            //цикл для заполнения массива
            // так как нам известен размер массива, то в уcловии по идее можно было написать i<10
            for(int i = 0; i < array.Length; i++)
            {
                switch (value)
                {
                    //если значение символа равно неккоректному значению
                    //то в значение подставляется следующий по порядку символ
                    case 'A':
                        value++;
                        break;
                    case 'E':
                        value++;
                        break;
                    case 'I':
                        value++;
                        break;              
                }
                //значение символа подставляется в очередную позицию в массиве
                array[i] = value;
                //значение меняется на следующий символ в массиве
                value++;          
            }
            //вывод значений в консольное окно
            for(int j = 0; j < array.Length; j++)
            {
                Console.WriteLine("{0} = {1}", j, array[j]);
            }
            Console.ReadKey();

        }
    }

    Вывод символов на экран можно было бы сделать и в цикле, так было бы короче, к примеру

    Код:
    using System;
    class MyProgram
    {
        static void Main()
        {
            //Объявляем и инициализируем переменную для первого симовла в массиве
            char value = 'A';
            //Создаём массив
            char[] array = new char[10];
            //цикл для заполнения массива
            // так как нам известен размер массива, то в уcловии по идее можно было написать i<10
            for(int i = 0; i < array.Length; i++)
            {
                switch (value)
                {
                    //если значение символа равно неккоректному значению
                    //то в значение подставляется следующий по порядку символ
                    case 'A':
                        value++;
                        break;
                    case 'E':
                        value++;
                        break;
                    case 'I':
                        value++;
                        break;              
                }
                //значение символа подставляется в очередную позицию в массиве
                array[i] = value;
                //значение меняется на следующий символ в массиве
                value++;
                //вывод значений в консольное окно
                Console.WriteLine("{0} = {1}", i, array[i]);      
            }
            Console.ReadKey();
        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Ср 26 Фев 2020 - 15:00

    Очередная задача C#

    Напишите программу, в которой создаётся массив и заполняется случайными числами. Массив отображается в консольном окне. В этом массиве необходимо определить элемент с минимальным значением. В частности, программа должна вывести значение элемента с минимальным значением и индекс этого элемента. Если элементов несколько , должны быть выведены индексы всех этих элементов.



    Решение задачи
    Код:
    using System;
    class MyProgram
    {
        static void Main()
        {
            //Объявляем переменые
            int value, min, k;
            //Создаём массив
            int[] array = new int[10];
            //объявляем генератор случайных чисел
            Random rnd = new Random();
            //цикл для заполнения массива рандомным значением
            Console.WriteLine("Заполненный массив");
            for (int i = 0; i < array.Length; i++)
            {
                //присваиваем значению рандомное число в диапазон от 0 до 1000
                value = rnd.Next(0, 1000);          
                //подставляем это значение в массив по местоположению индекса
                array[i] = value;
                //вывод на экран заполненного массива
                
                Console.WriteLine("{0} = {1}", i, array[i]);
            }
            Console.WriteLine();
            //присваиваем переменной первое значение в массиве
            min = array[0];
            //цикл для перебора массива      
            for ( k = 0; k < array.Length; k++)
            {
                //сравнение элементов массива, если значение меньше предыдущего
                //то переменным присваивается значение.
                if (array[k] <= min)
                {
                    min = array[k];              
                }
            }
            //цикл перебора массива на предмет одинаковых значений
            for (int j = 0; j < array.Length; j++)
            {
                //если значения совпадают, то выводится на экран индекс и значение индекса
                if (array[j] == min)
                {
                    Console.WriteLine("Индекс минимального элемента = {0} Значение минимального элемента = {1}",
                        j, array[j]);
                }
            }
            //вывод ответа в консоль
            
            Console.ReadKey();      
        }
    }

    Довольно долго пришлось задачку решать (пару часов), вначале плохо прочитал задание и выводил массив, сгенерированный из случайных чисел по возрастанию .. потом задание перечитал, и понял, что старался сделать не то, что надо, в итоге всё решилось без подсказок ( и подсмотров), и работает как надо. Для программистов и скептиков повторюсь, я не программист. Я занимаюсь самообучением, изучая язык программирования C# с нуля, помочь и подсказать некому.   Embarassed
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Ср 26 Фев 2020 - 16:46

    Задача

    Напишите программу, в которой создаётся целочисленный массив, заполняется случайными числами и после этого значения элементов в массиве сортируются в порядке убывания значений.


    Размер массива не задан, значит будет 10.

    Решение задачи
    Код:
    using System;

    class MyProrgam
    {
        static void Main()
        {
            //Объявляем переменные
            int value,max=0;
            //Объявляем массив
            int[] array = new int[10];
           
            //создаём генератор случайных чисел
            Random rnd = new Random();
            //создаём цикл для заполнения массива случайными значениями
            Console.WriteLine("Значения созданного массива");
            Console.WriteLine();//пустая строка
            for (int i = 0; i < array.Length; i++)
            {
                //присваиваем значению случайное число
                value = rnd.Next(0, 1000);
                //переносим значение в массив
                array[i] = value;
                //вывод на экран значения массива
                Console.WriteLine("{0} = {1}", i, array[i]);
            }
            Console.WriteLine();//пустая строка
            //цикл для поиска самого большого значения
            for(int k = 1; k < array.Length; k++)
            {         
                for (int j=0; j < array.Length-k; j++)
                {
                    if(array[j]<array[j+1])
                    {
                        max = array[j+1];
                        array[j + 1] = array[j];
                        array[j] = max;
                    }                                             
                }         
            }
            Console.WriteLine();
            Console.WriteLine("Массив после сортировки");
            Console.WriteLine();
            for (int a = 0; a < array.Length; a++)
            {
                Console.WriteLine("{0} = {1}", a, array[a]);
            }
            Console.ReadKey();//нажать кнопку, чтобы закрыть консольное окно
        }
    }



    Решение найдено, пусть и не сразу и с подсказками ) Пришлось досконально разбираться в методе пузырька  Rolling Eyes
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Ср 26 Фев 2020 - 17:33

    Задача

    Напишите программу, в которой создаётся символьный массив, а затем порядок элементов в массиве меняется на обратный.




    Решение
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            //Объявляем символьную переменную
            char value;
            //создаём генератор рандома
            Random rnd = new Random();
            //объявляем массив
            char[] array = new char[10];
            //заполняем массив
            Console.WriteLine("Созданный символьный массив");
            Console.WriteLine();
            for(int i = 0; i < array.Length; i++)
            {
                value = (char)rnd.Next(0, 200);
                array[i] = value;
                //Выводим массив на консоль
                Console.WriteLine("{0} = {1}", i, array[i]);
            }
            Console.WriteLine();
            Console.WriteLine("Массив в обратном порядке");
            Console.WriteLine();
            //цикл для отображения массива в обратном порядке
            for(int k=9; k >= 0; k--)
            {
                Console.WriteLine("{0} = {1}", k, array[k]);
            }
            Console.ReadKey();
        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Чт 27 Фев 2020 - 16:47

    Задача

    Напишите программу, в которой создаётся двумерный целочисленный массив. Он заполняется случайными числами. Затем в этом массиве строки и столбцы меняются местами: первая строка становится первым столбцом, вторая строка становится вторым столбцом и т.д Например , если исходный массив состоял из 3 строк и 5 столбцов, то в итоге получаем массив из 5 строк и 3 столбцов.



    Решение задачи 
    Код:
    using System;
    class MyProgram
    {
        static void Main()
        {
            //создаём переменные для размера массива
            int sizeStroka=3, sizeStolbec=5,value;
            //Создаём двумерные массивы
            int[,] array = new int[sizeStroka, sizeStolbec];
            int[,] copyArray = new int[sizeStolbec, sizeStroka];
            //Создаём генератор случайных чисел
            Random rnd = new Random();
            //перебор строк
            for(int i = 0; i<array.GetLength(0); i++)
            {
                //перебор столбцов
                for (int k = 0; k < array.GetLength(1); k++)
                {
                    value = rnd.Next(0, 1000);
                    array[i, k] = value;
                    //Отображение элемента в строке
                    Console.Write(array[i, k] + "\t");
                }
                //Переход к новой строке
                Console.WriteLine();
            }
            //меняем значения местами
            Console.WriteLine();
            Console.WriteLine("После замены местами");
            Console.WriteLine();
            //заполняем строка
            for (int i = 0; i < copyArray.GetLength(0);i++)
            {
                //заполняем столбец
                for(int j = 0; j < copyArray.GetLength(1);j++)
                {
                    //каждому строке присваиваем значение столбца и наоброт
                    copyArray[i, j] = array[j, i];
                    //вывод в консоль
                    Console.Write(copyArray[i, j] + "\t");

                }
                //новая строка
                Console.WriteLine();
            }
            Console.ReadKey();

        }
    }

    Решение оказалось легче простого.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Чт 27 Фев 2020 - 18:59

    Задача

    Напишите программу, в которой создаётся и инициализируется двумерный числовой массив. Затем из этого массива удаляется строка и столбец (создаётся новый массив, в котором по сравнению с исходным удалена одна строка и один столбец). Индекс удаляемой строки и индекс удаляемого столбца определяется с помощью генератора случайных чисел.



    Решение задачи
    Код:
    using System;
    class MyProgram
    {
        static void Main()
        {
            //объявляем переменные
            int value,stroka,stolbec;
            //Создаём два массива
            int[,] array = new int[5, 5];
            int[,] arrayTwo = new int[5, 5];
            //Создаём генератор случайных чисел
            Random rnd = new Random();
            //заполняем массив в цикле
            //Цикл по строке
            for (int i = 0; i < array.GetLength(0);i++)
            {
                //цикл по столбцу
                for(int k = 0; k < array.GetLength(1); k++)
                {
                    //присваиваем переменной случайное значение
                    value = rnd.Next(0, 100);
                    //подставляем значение переменной в определённую позицию в массив
                    array[i, k] = value;
                    //Выводим на экран строку
                    Console.Write(array[i, k] + "\t");
                }
                //Следующая строка
                Console.WriteLine();
            }
            //присваиваем случайный индекс строке и столбцу
            stroka = rnd.Next(0, 5);
            stolbec = rnd.Next(0, 5);
            //Выводим на экран индекс строки и столбца
            Console.WriteLine();//пустая строка
            Console.WriteLine("Индекс строки = {0} \nИндекс столбца = {1}", stroka, stolbec);
            Console.WriteLine();
            //вывод на экран нового массива, без выбранной строки и столбца
            for(int i = 0; i < arrayTwo.GetLength(0); i++)
            {
                //если номер индекса строки не является выбранному значению
                //то идёт перебор по столбцам, иначе используется следующий по возрастанию индекс
                if (i != stroka)
                {              
                    for(int k = 0; k < arrayTwo.GetLength(1); k++)
                    {
                        //если номер индекса столбца не является выбранному значению
                        //то идёт дальнейший перебор, иначе используется следующий по возрастанию индекс
                        if (k != stolbec)
                        {
                            arrayTwo[i, k] = array[i, k];
                            //вывод на экран строки
                            Console.Write(arrayTwo[i, k] + "\t");
                        }                    
                    }
                    //следующая строка
                    Console.WriteLine();
                }          
            }
            Console.ReadKey();
        }
    }

    По идее условие задачи решено, в новом массиве нет  столбца и строки, номер который был рандомно сгенерирован. Однако массив по размерности остался такой-же. Для упрощения задачи, в консоль выводится индекс строки и столбца (не забывайте , что счёт начинается с 0. Возможно решить можно было бы как -то лучше, чтобы размер массива соответствовал, но что то ничего в голову не приходит.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 213
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 3 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Чт 5 Мар 2020 - 14:05

    Задача C#

    Напишите программу, в которой описан статический метод для вычисления двойного факториала числа, переданного аргументом методу.
    По определению, двойной факториал числа n (обозначается как n!!) - это произведение через одно всех чисел, не больше числа n. То есть n!!=n*(n-2)*(n-4)*...(последний множитель равен 1 для нечётного n и равен 2 для чётного n) Например, 6!!=6*4*2=48 и 5*3*1=15.
    Предложите метод с рекурсией и без рекурсии.




    Решение задачи C# без рекурсии
    Код:
    using System;
    class MyProgram
    {
        static int factorial(int n)
        {
            //объявляем и инициализируем две переменные
            //для результата и для значения
            int res = 1, val = 0 ;
            //цикл для подсчёта значений
            for (int i = 0; i < n; i+=2)
            {
                //результат = введённое число * на значение, которое возрастает от 0
                //в кратности 2 (так как надо найти двойной факториал) до введённого числа, но не включая его
                //так как условие цикла i<n(введённое число)
                res *= n - val;                                
                val += 2;
            }
            //с новой строки
            Console.WriteLine();
            return res;

        }
        //Главный метод программы
        static void Main()
        {
            //вывод на экран
            Console.WriteLine("Факториал числа равен " + factorial(9));
            Console.ReadKey();
        }
    }

    Решение задачи C# c рекурсией
    Код:
    using System;
    class MyProgram
    {
        static int factorial(int n)
        {
            //рекурсия
            if (n == 1 || n == 2) return n;
            else return n * factorial(n - 2); 
        }
        //Главный метод программы
        static void Main()
        {
            //вывод на экран
            Console.WriteLine("Факториал числа равен " + factorial(12));
            Console.ReadKey();
        }
    }

    Нельзя вводить большие значение, так как может не хватить места в памяти, так как тип данных int и размер до до 2 147 483 647

      Текущее время Вс 8 Сен 2024 - 5:09