ИНФОРМАТИКА!!! Вычислить значение N! (n - натуральное, цикл while)

0 голосов
49 просмотров

ИНФОРМАТИКА!!!

Вычислить значение N! (n - натуральное, цикл while)


Информатика | 49 просмотров
0

Насколько большое значение N подразумевается?

Дано ответов: 2
0 голосов
Правильный ответ

Program asd;
USES crt;
var n,s,q: integer;
BEGIN
Clrscr;
Write('Vvedite n ');
Readln(n);
S:=1;
Q:=1;
while qbegin
q:=q+1;
s:=s*q;
end;
writeln('Otvet: ',s);
Readln;
END.

(1.1k баллов)
0

Поставьте задержку Readkey или Readln;

0

Я пишу на ABC, забываю вставить задержку. Исправил программу, сейчас вылетает ?

0

Спасибо, Удачи!

0 голосов

Дело в том, что факториал числа представляет собой довольно большое значение, которое не влазит в ячейку real, если вводить даже не очень большие числа.
Для чисел, не превышающих 170:

uses crt;var f:real;
    x,n:integer;
begin
     f:=1;
     write('N='); readln(N);
     if N<0 then writeln('ERROR!') else<br>     if N=0 then writeln('N!=',1)
     else begin
         for x:=2 to N do
              f:=f*x;
         writeln('N!=',f); end;
    readln;
end.

(7.2k баллов)
0

Ну просто Вы язык не указали. В abc такое работать будет, а в turbo, действительно, вылетит. Я вставила readln.

0

действительно вы правы)

0

я кстати понял, как сделать для большего числа

0

нужно работать с последними цифрами и работать все в строках

0

Sellsaccount, я пыталась с последними символами и со строками, но мороки много с этим.. на каникулах, если свободное время будет, я еще подумаю над этим)

0

только там еще одна проблема) ограничение строки на 255 сиволов

0

Сделать массив символов