Напишите программу,которая вводит с клавиатуры натуральное число n и определяет его факториал,т.е произведение натуральный чисел от 1 до n: n! =1*2*3**n.что будет,если ввести большое значение n.

mihaill1988 mihaill1988    1   23.09.2019 06:50    4

Ответы
Serebrennikova217 Serebrennikova217  08.10.2020 11:40
Program fakt;
var
   n,i,z:integer;
begin
   readln(n);
   z:=1;
   for i:=2 to n do
      z:=z*i;
   writeln(z);
end.

Если программу написать так, то максимальный факториал, которой мы сможем вычислить - 12. Можно integer изменить на real, тогда чуть больше сможем вычислить. Так же можно вычислить через массив, тогда где-то 3000 мы сможем получить.

Если же ввести больше 12 в этой программе, то получится переполнение переменой, из-за чего число пойдёт "по кругу". Т.е. мы получим не 3 000 000 000, а -1 000 000 000, т.к. максимальное число у integer - примерно 2 000 000 000
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика