WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Pascal
  Кто прав ???

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Кто прав ???
MishaZ опубликован 03-02-2002 09:15 MSK   Click Here to See the Profile for MishaZ   Click Here to Email MishaZ  
У нас тут не давно школьная олимпиада былп так вот там одна из задач была такая...
найти сумму ряда S=1+1/2^2+1/3^2+......1/2002^2
используя только одну переменную.
ну так вот у нас там такая система что вопросы жюри в процессе написания олимпиады можно задавать только так чтоб на них можно было ответить либо да либо нет ...ну я и спросил регистры процессора переменными являются? ..а они мне....ДА
ну типа значит в процессе решения задаяи их использовать низя. Я съел но потом до меня дошло что всё равно применяя ту или иную арифмеитическую операцию мы используем регистры процессора ....а заначит с их ответом данную задачу решить невозможно ..вот с этим я на них и наехал а они отпираются...

Так кто прав ????

Zzzaraza опубликован 03-02-2002 09:39 MSK     Click Here to See the Profile for Zzzaraza  Click Here to Email Zzzaraza     
дык, используем, но не явно, а ты, как я понял, хотел явно указать их в программе.
MishaZ опубликован 03-02-2002 09:52 MSK     Click Here to See the Profile for MishaZ  Click Here to Email MishaZ     
Хм--м-м-м ну в воппросе не звучало что то про явно или не явное обращение.....тут уже юридические тонкости...=)
7in опубликован 03-02-2002 22:12 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
А олимпиада-то по Паскалю, так что ассемблером пользоваться нельзя :)
Это даже не юридические тонкости. Можно было бы тогда написать программу с 2-мя переменными, откомпилировать и через Exec запустить из главной, поулчив результат с использованием 1-й переменной. Об этом ведь тоже не сказано в условии...

Вообще говоря, из задачи следует: For использовать нельзя, так что придётся только While или Repeat Until, либо вообще без цикла... Можно, конечно, подумать над сложными математическими формулами, но можно поступить проще :)))

Результат всегда будет >1 и <2, т.е. нас волнует только дробная часть, поэтому целую часть можно использовать для цикла:

{$N+}
Var
Sum: Extended;
i: Word;
Begin
{ Решение... }
Sum := 2;
Repeat
Sum := Sum + 1/Sqr(Trunc(Sum)) + 1
Until Sum >= 2003;
Sum := Sum - 2002;
WriteLn(Sum: 0: 14);
{ Проверка... }
Sum := 0;
For i := 1 to 2002 do
Sum := Sum + 1/Sqr(i);
WriteLn(Sum: 0: 14)
End.

Zzzaraza опубликован 04-02-2002 17:38 MSK     Click Here to See the Profile for Zzzaraza  Click Here to Email Zzzaraza     
э-ээх, чему вас в школе только учили, проще нада, проще :)

var s:real;
function sum(s:real):real;
s=s+1;
if s<2003 then
begin
sum:=sum(s)+1/(s*s);
end;
end;
begin
write (sum(0));
end.

при желании мона и без переменных (Var)обойтись,IMHO функция не есть переменная

NOPIK опубликован 05-02-2002 08:55 MSK     Click Here to See the Profile for NOPIK  Click Here to Email NOPIK     
Черт побери! А ведь верно! Переменные функций не являются переменными программы.
Так что, и огород не нужен...
Только в олимпиадных задачах обычно оговаривается запрет на использование дополнительных функций (Именно поэтому...)
:-(
7in опубликован 05-02-2002 23:17 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
2 Zzzaraza:
А если понадобится считать до 20000? :)
Для твоего варианта нужно уже 2004*(2+6)=16kb стека!
Хотя для данного случая нормально (оценил, блин :)
Zzzaraza опубликован 06-02-2002 07:04 MSK     Click Here to See the Profile for Zzzaraza  Click Here to Email Zzzaraza     
Млин обшибок у меня тама куча :(, но это не важно, кому нада тот разберется, а вообще это изврещение полнейшее...но прикольно однако:)
murph опубликован 06-02-2002 14:09 MSK     Click Here to See the Profile for murph  Click Here to Email murph     
А вот если считать надо до 1е11, или более, то переменных уже не надо вовсе...

А решение от заразы - это клево. Ценю.

Gavr опубликован 14-02-2002 10:58 MSK     Click Here to See the Profile for Gavr  Click Here to Email Gavr     
Зараза ты мой кумир!

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.