Вопрос № 66205: Здравствуйте.помогите пожалуйста составить программу в Паскале.Мучаюсь уже недели две-все никак.
>
>Для заданного целого n вычислить сумму 1^1+2^2+3^3...n^n.определить при каком n произойдет переполнение для типов integer?Ljngint? <br...
Вопрос № 66.205
Здравствуйте.помогите пожалуйста составить программу в Паскале.Мучаюсь уже недели две-все никак.
>
>Для заданного целого n вычислить сумму 1^1+2^2+3^3...n^n.определить при каком n произойдет переполнение для типов integer?Ljngint?
>
>Заранее благодарю.Надеюсь на помощь.С уважение,Яна.
Отправлен: 09.12.2006, 10:09
Вопрос задал: Янусик (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Verena
Здравствуйте!
В Паскале есть две константы - Maxint и maxlongint. Надо ими воспользоваться.
Написать отдельную функцию, которая будет вычислять заданную сумму.
Function Sum (n: integer);
Var i: integer;
Begin
Sum:=0;
For i:=1 to n do
Sum:= Sum+exp(i*ln(i));
End
А в самой программе делаете цикл
s:=0;
n:=1;
While s<=(maxint-Sum (n)) do
Begin
s:=s+Sum(n);
inc (n);
End;
То n, на котором цикл прервётся и будет критическим. Для longint аналогично.
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 3-ий класс)
Ответ отправлен: 09.12.2006, 14:56