28.10.2011, 23:36 | #1 (permalink) |
Новичок
Регистрация: 28.10.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача по циклам
Пользователь вводит целое положительное число k. Найти наибольшее значение суммы 1^k + 2^k + 3^k + ... + n^k , Вывести на экран таблицу всех значений суммы, которые не выходят за пределы диапазона типа longint. Помогите, товарищи! Задачу надо решить через циклы. Я уже третьи сутки кукую, шляпа какая-то получается, ничего толкового. Сумма не выходит. В общем, помогите. Вот моя прога. Program Cikl; uses crt; const v=#179; var s,k,i,z,x,c:longint; begin clrscr; writeln ('---------------------------'); writeln (v,'Степень',v,' Значение суммы ',v); writeln ('---------------------------'); for k:=1 to 16 do begin write (v,' ',k,' ',v,' '); i:=1; while s<exp(30*ln(2)) do begin s:=s+trunc(exp(k*ln(i))); i:=i+1; end; writeln (s,' ',v); writeln ('---------------------------'); end; writeln; write ('‚Введите положительное число k='); readln (x); if (x>=31) then writeln ('Наибольшая сумма равна s=1') else if (x>=20) and (x<31) then z:=1+trunc(exp(x*ln(2))) else begin c:=1; while z<exp(30*ln(2)) do begin z:=z+trunc(exp(x*ln(c))); c:=c+1; end; writeln ('Наибольшая сумма равна s=',z); end; writeln ('Наибольшая сумма равна s=',z); readln; end. |
28.10.2011, 23:36 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Проблема встречалась и ранее, вот, что нашлось Задача по С + + Задача по С++ |
29.10.2011, 09:33 | #2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Наворотили вы тут действительно что-то непонятное, трудноосмысляемое и неудобоваримое.
Код:
var i,k:longint; s:extended; begin write('K='); readln(k); i:=2; s:=1; while s<exp(31*ln(2)) do begin s:=s+trunc(exp(k*ln(i))); writeln ('При i=',i,' текущая сумма s=',s); i:=i+1; end; writeln ('Наибольшая сумма равна s=',s); readln; end. З.Ы. Диапазон значений не проверял, но вроде как верный |
29.10.2011, 09:33 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Я бы Вам с удовольствием помог, если бы уяснил условие задачи. Итак, есть граница диапазона, равная 2^31-1. Вводим k. Отсюда с помощью цикла определяем n. Всё предельно однозначно, а потому я напрочь не понимаю, о каких "наибольших" и "всех" значениях суммы идет речь? Повторяю, я вижу абсолютно однозначное по k, n и, соответственно, s решение. Поясните.
|
29.10.2011, 09:57 | #4 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Владимир, думаю, что требуется вывести цепочки сумм степеней чисел для различных показателей степени. Эти цепочки при разных значениях k будут различаться по длине и количеству чисел. Тут нужно будет еще ввести ограничение на значение k, так как при числах более 10 выдается ошибка превышения диапазона
Но это мое сугубое imho |
29.10.2011, 22:57 | #5 (permalink) |
Новичок
Регистрация: 28.10.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Алексей, очень вас благодарю.
Владимир, предоставляю вам простое объяснение. Я студент, мне дали вот эту задачу. Я тоже сутки думал, что за смысл этой задачи. В итоге, пришел к выводу, что это банальная сумма. Меня все равно смущает наличие переменной n. Я сам не понимаю толком. И Алексей, выйдете в аську, пожалуйста. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
30.10.2011, 03:58 | #6 (permalink) |
Новичок
Регистрация: 28.10.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
И все же, как быть со второй частью вопроса?)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|