Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вычислить значение выражения. На С#

Настя Меньшова Ученик (97), закрыт 5 лет назад
Вычислить значение выражения 2 * (n + 2)! от заданного значения n (значение n вводится с
клавиатуры).
Лучший ответ
просто майл ничего особенного Мастер (1320) 5 лет назад
Зря программирование не учите, единственное что в России пригодиться в жизни.
Остальные ответы
Victor Surozhtsev Просветленный (38486) 5 лет назад
public static void Main()

{ long k,n,p; for(;;) {
Console.WriteLine("n (≥-2) = "); n=long.Parse(Console.ReadLine());

if (n < -2) Console.WriteLine

("Неправильный ввод !");

else if (n==-2) Console.WriteLine(2); else { p=1; for (k=1; k <= n+2; k++) p*=k; Console.WriteLine(2*p); } } }
Victor SurozhtsevПросветленный (38486) 5 лет назад
Вообще-то, заранее надо предупреждать какими типами пользоваться можно, а какими нет. Так, например, типом long здесь описывается всё верно лишь до n=18. А дальше удвоенные факториалы просто в стандартный знаковый восьмибайтный целый тип не помещаются. По-моему, можно было сразу воспользоваться типом decimal, он 16-байтный, хотя с другой стороны и его ненадолго хватит, факториалы растут очень быстро - по экспоненте с обострением. Поэтому пусть всё остаётся как есть, но предельное значение для n тут действительно довольно небольшое!..
Похожие вопросы