Помощь - Поиск - Пользователи - Календарь
Полная версия: Дано натуральное n. Получить ...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
clack
Такая вот задачка,последняя за курс Паскаля.Проверьте,пожалуйста,решение,как то ответ мне не очень нравится,там значение можно ввести только от 1 до 2х.Заранее спасибо!

Дано натуральное n. Получить
(1+n^1)(2+n^2)...(n+n^n)

Вот как у меня получилось-
var n, i, p: integer;
function power(c: integer): integer;
var i,c2: integer;
begin
c2:=c;
for i:=2 to c do
c2:=c2*c;
power:=c2;
end;
begin
readln(n);
p:=1;
for i:=1 to n do
p:=p*(i+power(i));
writeln(p);
end.
IUnknown
У тебя не то считалось в Power. Надо не i возводить в степень i, а n возводить в степень i.
var
n, i : Integer;
p : longint;

function power(c: integer): longint;
var i : Integer;
c2 : longint;
begin
c2:=1;
for i:=1 to c do
c2:=c2*n;
power:=c2;
end;

begin
readln(n);
p:=1;
for i:=1 to n do
p:=p*(i+power(i));
writeln(p);
end.


Цитата
ответ мне не очень нравится,там значение можно ввести только от 1 до 2х
Что ж ты хочешь, при такой функции-то. Мало того, что при вводе 4 у тебя последняя скобка = (4 + 44) = 260, так еще и предыдущая = 67, вторая = 18 и первая = 5. И сколько получится, если это всё перемножить? 1567800.

В Integer уже не помещается, разве что в LongInt. А при n = 5 произведение и в LongInt уже не помещается.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.