Расчет факториала натурального числа n - C#

  1. Помогите, пожалуйста.. Составить программу для расчета факториала натурального числа n (факториал числа n равен 1*2*3*..*n).


textual

Код к задаче: «Расчет факториала натурального числа n - C#»

 static class WTF
        {
            public static readonly ulong[] Fac = new ulong[]
            {
                1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600,
                6227020800, 87178291200, 1307674368000, 20922789888000, 355687428096000, 6402373705728000,
                121645100408832000, 2432902008176640000
            };
        }
 
        private static ulong CheatFac(uint n)
        {
            if (n == 0) return 1;
            if (--n > WTF.Fac.Length) throw new Exception("What the fuck!");
            return WTF.Fac[n];
        }

СДЕЛАЙТЕ РЕПОСТ

6   голосов, оценка 3.667 из 5



Похожие ответы
  1. Правильно ли я понимаю задание? Настройки com порта стандартные: 9600, 1 стартовый бит, 8 бит данных, 1 стоповый бит, без бита четности. Контрольная сумма посылаемого/принимаемого пакета рассчитывается как CS = NOT (B1+B2+B3+…+BN), где B1…BN - последовательность байт пакета, исключая байт контрольной суммы, NOT – операция побитного логического «НЕ». *Контрольная сумма (дополнение до нуля) Вопрос1. Если я правильно понимаю складываем все байты(кроме байта контрольной суммы) и делается операция логического НЕ. Тогда, что значит дополнение до 0? Вопрос2. Как все это работает? Поправьте меня.В моем случае есть ведущее устройство (компьютер) и ведомое (теплосчетчик). Ведущее устройство (компьютер посылает запрос): Кликните здесь для просмотра всего текста Посылка «ведущего» устройства Байт Обозначение Пример Описание 0 SIG 55 Признак начала пакета; 1 ADDR 01 Сетевой адрес ведомого устройства; 2 !ADDR FE Инверсное значение сетевого адреса; 3 CGRP 0F Группа команд; 4 CMD 01 Чтение памяти таймера 2К 5 LEN 03 Число байт посылаемых данных (3) 6 TADRH 01 Начальный адрес в памяти таймера 2K (старший байт) 7 TADRL 80 Начальный адрес в памяти таймера 2K (младший байт) 8 TLEN 40 Длина считываемого блока данных (1..64 байт) 9 CS Контрольная сумма (дополнение до нуля) Делаю запрос типа byte[] zapros = new byte[] { 0x55, 0x01, 0xFE, 0x0F, 0x01, 0x03, 0x01, 0x80, контрольная сумма подсчитанная по алгоритму}, 9-ый байт рассчитываю как NOT(55+01+FE+0F+01+03+01+80+40) и полученное число,например, 27 помещаю 9-ым байтом 0x27.После отправки получаю пакет от ведомого устройства. Ответ «ведомого» устройства Байт Обозначение Пример Описание 0 SIG AA Признак начала пакета 1 ADDR 01 Сетевой адрес устройства 2 !ADDR FE Инверсное значение сетевого адреса 3 CGRP 0F Группа команд 4 CMD 01 Чтение памяти таймера 2К 5 LEN 40 Число байт посылаемых данных (равно полю TLEN в посылке ведущего) 6 DATA Данные … DATA 5+LEN CS Контрольная сумма (дополнение до нуля) Контрольную сумму ведомое устройство считает само? А я должен проверить ее? Если совпадает пакет принимается. Если не совпадает, шлем новый запрос. Вот так я это понимаю. Может кто поможет примером кода? Настройки порта делать умею.

  1. Получается посчитать только до 18-го числа последовательности, нужно до 1000 Вот код: Кликните здесь для просмотра всего текста

  1. Вычислить y=x(0)+x(0)*x(1)+x(0)*x(1)*x(2)+...+x(0)*x(1)*...*x(m), где m  либо номер первого отрицательного элемента массива Х, либо число N, если в массиве Х нет отрицательных элементов. Подскажите, правильно ли Я понял задание. Создаем массив X Ищем индекс первого отрицательного элемента массива. Если не нашел, то... число N, что это за число N и как Мне записать выражение y=...в общем виде.

  1. Помогите, пожалуйста с кодом... необходимо в программу вставить "горячую клавишу". Предназначение клавиши(пусть будет Ctrl + R): прервать выполнение программы (расчеты), и перейти в метод, где меняются входные данные, и затем заново начинаются расчеты с учетом новых данных

  1. Как реализовать функцию расчета угла прицеливания, в зависимости от начальной скорости снаряда и дальности до цели? Получается метод с двумя параметрами

  1. Помогите пожалуйста, срочно, сделал программу, собрал со всех источников, но цифры при счёте идут в обратном порядке, т.е., если факториал 3, то выдает 3, 2, 1, а нужно по просьбе преподавателя наоборот чтобы выводило. Препод сказал поменять что-то в одном месте, а что, я не знаю... Вот код программы:

  1. Здравствуйте! Столкнулся вот с таким заданием, снизу прикрепил. (Задание на C#) Преподаватель сказал нужно сделать всё по простому, использование цикла и т.д., всё как можно проще. Насколько я понимаю по заданию, нужно просто найти факториал, заданного числа, который задаёт пользователь! Но как это сделать простенько, и понятно, я не знаю. Помогите пожалуйста, заранее спасибо!

  1. Не могу решить задания, в C# новичок. Заранее спасибо. Там два задания a и b. Задание прикрепил картинкой

  1. Задание В класс MyMathClass поместите рекурсивную функцию Factorial() вычисления факториала натурального числа, которая будет принимать один аргумент типа int и будет возвращать результат типа int. Функция должна давать правильный результат и при нулевом аргументе (0! = 1) Не могу врубить, куда добавлять метод Factorial(), куда не добавлю вечно какая-то шляпа получается. Конечно тут всё понятно для для таких примеров не рекомендуется рекурсия, но хотелось бы разобрать в качестве примера. Я решил так

  1. Напишите программу для расчета по формуле. Предварительно подготовьте тестовые примеры с помощью калькулятора (результаты вычисления должны совпадать). Для вычислений используйте математические функции класса Math. Методы, отсутствующие в классе, выразите через имеющиеся. Полный код, пожалуйста.