Помощь - Поиск - Пользователи - Календарь
Полная версия: Операторы цикла
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Lis
Здравствуйте! Буду признателен если поможете решить задачку.
Задание: Дано натуральное число n. Вычислить:
Нужно решить с помощью for, repeat или while.
Lapp
Цитата(Lis @ 26.06.2010 20:45) *

Здравствуйте! Буду признателен если поможете решить задачку.
Задание: Дано натуральное число n. Вычислить:
Нужно решить с помощью for, repeat или while.

Можно как-то вот так:
  s:=0;
a:=1;
for k:=1 to n do begin
for i:=2*sqr(k-1)+2 to 2*sqr(k)+1 do a:=a*i;
a:=-a;
s:=s+a
end;

Учти только, что факториал очень быстро растет и выходит за границы практически любого целого типа, так что так (в лоб) ты сможешь посчитать только совсем немного (по k). К тому же у тебя под ним стоит квадрат индекса. Ни в коем случае не отключай проверку диапазона, иначе будешь считать неверно, но не узнаешь этого..
Lis
спасибо большое!
Евгений
Здравствуйте!
Дана задача по вычислению факториала, с которой вроде справился, но есть ограничения: "тип обработанных данных-longint, если результат не помещается в 4 байта программа должна сообщить об этом"
Вот что написал:

Program Factoreal;
uses crt;
var
N: longint;
M,I: integer;
Begin
clrscr;
N:=1;
write('введите число>=0 ');
readln(M);
if M=0 then N:=1
else
for I:=1 to M do
N:=N*I;
writeln ('Факториал равен:',' ',N);
readln;
end.


Как добиться того чтобы программа сообщала о переполнении?
Lapp
Цитата(Евгений @ 27.11.2010 4:27) *
Здравствуйте!
Дана задача по вычислению факториала,

Ну, и почему в чужой теме? У тебя кнопку "Открыть тему" заело?
Прочти, пожалуйста, правила форума.
Закрыто.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.