Program asd; USES crt; var n,s,q: integer; BEGIN Clrscr; Write('Vvedite n '); Readln(n); S:=1; Q:=1; while q<n do begin q:=q+1; s:=s*q; end; writeln('Otvet: ',s); Readln; END.
Дело в том, что факториал числа представляет собой довольно большое значение, которое не влазит в ячейку real, если вводить даже не очень большие числа. Для чисел, не превышающих 170:
uses crt;var f:real; x,n:integer; begin f:=1; write('N='); readln(N); if N<0 then writeln('ERROR!') else if N=0 then writeln('N!=',1) else begin for x:=2 to N do f:=f*x; writeln('N!=',f); end; readln; end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку