• Напишите программу, которая вводит натуральное число N и определяет его факториал, то есть произведение натуральных чисел от 1 до N : N ! = 1·2·{...}· N .

    Входные данные
    Входная строка содержит одно натуральное число N .

    Выходные данные
    Программа должна вывести одно число – факториал введённого числа N .

Ответы 6

  • Есть один нехороший момент в таком решении. Если введенное значение превысит 20, произойдет арифметическое переполнение, которое в Паскале по умолчанию игнорируется, т.е. программа тихонько выдаст неверный ответ.
    • Автор:

      madison86
    • 6 лет назад
    • 0
  • Поэтому полезно при вводе проверять, чтобы введенное значение было между 1 и 20, либо в случае, если n>20, переходить на переменные типа real.
    • Автор:

      twiggy64
    • 6 лет назад
    • 0
  • Хотя, для школьной задачки решение безупречное.
    • Автор:

      shnookie
    • 6 лет назад
    • 0
  • Вот написал и сам ошибся. 20 - это для переменной типа Int64. А для longint - всего 12
    • Автор:

      brisa
    • 6 лет назад
    • 0
  • program pr;var i,x,a:longint;beginreadln(a);x:=1;for i:=2 to a dox:=x*i;writeln(x);end.
  • var  i:integer;  f,n:longint;  fr:real;begin  Write('N='); Read(n);  if n<=12 then begin    f:=1;    for i:=2 to n do f:=f*i;    Writeln('F=',f)  end  else begin    fr:=1;    for i:=2 to n do fr:=fr*i;    Writeln('F=',fr)  endend.Тестовые решения:N=12F=479001600N=13F=6227020800N=20F=2.43290200817664E+18
    • Автор:

      bobbypycu
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years