IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Дано натуральное n. Получить ..., Проверить решение.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Такая вот задачка,последняя за курс Паскаля.Проверьте,пожалуйста,решение,как то ответ мне не очень нравится,там значение можно ввести только от 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.


Сообщение отредактировано: clack -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


У тебя не то считалось в 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 уже не помещается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 13.05.2024 19:39
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name