http://nuclearworldwarsite.com/beginning.html
Задача простая, но додуматься не могу, никак до конца не понять, как использовать некоторые операторы, как всё это привязывать друг к другу. Покажите, пожалуйста, как её решить.
Вычислить х1+х2+...+х20, если последовательность х1, х2...хk образована по следующему законух1=х2=х3=1,
Xi=(Хi-1 -1)*(I+3)+Xi-3*(Xi-2+4) ,i=4,5,6...
То что нежирное и подчёркнутое в формуле-это индекс...Спасибо Вам огромное, что хотя бы это прочитали..
Я ЧАЙНИК. Помогите пожалуйста, не знаю даже от чего отталкиваться
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
Каким языком программирования пользуешься?
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Например, такой вариант. Насчет красоты и оптимальности - не ручаюсь, но работать должен.
Только там такая охрененная (большая, в смысле) сумма получается, что и longint, и даже real переполняются. Пришлось использовать самый "вместительный" тип extended.
Только там такая охрененная (большая, в смысле) сумма получается, что и longint, и даже real переполняются. Пришлось использовать самый "вместительный" тип extended.
Код: Выделить всё
const K = 20;
var Sum,
X_minus_3,
X_minus_2,
X_minus_1,
X_next : extended;
iLoop : integer;
begin
X_minus_1 := 1;
X_minus_2 := 1;
X_minus_3 := 1;
{ Сумма первых трех членов последовательности }
iSum := iX_minus_1 + iX_minus_2 + iX_minus_3;
for iLoop:=4 to K do
begin
{ считаем очередной (iLoop - й) член последовательности }
X_next := (X_minus_1 -1) * (iLoop + 3) + X_minus_3 * (X_minus_2 + 4);
{ добавляем (iLoop - й) член последовательности к сумме }
Sum := Sum + X_next;
{ Готовимся к следующему проходу по циклу }
X_minus_3 := X_minus_2;
X_minus_2 := X_minus_1;
X_minus_1 := X_next;
end;
writeln ('Сумма первых ', K, ' членов ряда равна: ', iSum);
end.
Да, здесь начинаешь ценить умение Питона работать с любыми по длине числами 
Вот последовательность:
1
1
1
5
25
153
1209
13589
307881
19512737
4398489361
6060384084141
85905351169635825
26657737592601886182881
520619822837068305690957031089
2290042317610384510350413867880110352533
13878546622736380460988534833405532160494316077311977
1192241425683707941706745888098442821614130062917532076065348050638361
31782459072994995475792700656896763029935442500247180740797212373906026995431545893896726713
16546578211909032185463327908253767911178062576579658374837161838920513973788836420792449917274442425752823939166044731845
А вот сумма:
16546578211909032185463327908285550370251057572055452267735484285658405001581594438646572050444249135657797722312995020328

Вот последовательность:
1
1
1
5
25
153
1209
13589
307881
19512737
4398489361
6060384084141
85905351169635825
26657737592601886182881
520619822837068305690957031089
2290042317610384510350413867880110352533
13878546622736380460988534833405532160494316077311977
1192241425683707941706745888098442821614130062917532076065348050638361
31782459072994995475792700656896763029935442500247180740797212373906026995431545893896726713
16546578211909032185463327908253767911178062576579658374837161838920513973788836420792449917274442425752823939166044731845
А вот сумма:
16546578211909032185463327908285550370251057572055452267735484285658405001581594438646572050444249135657797722312995020328
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-
- Сообщения: 2
- Зарегистрирован: 14 мар 2007, 01:02
http://thenuclearworldwar.com/usa.html
Используется паскаль, хотя тут вроде и так разобрались.
ОГРОМНОЕ СПАСИБО за решение!!!! Буду учиться =).
Используется паскаль, хотя тут вроде и так разобрались.
ОГРОМНОЕ СПАСИБО за решение!!!! Буду учиться =).