первое решил, а вот второе в голове не укладывается. длинные корни эти.
TarasBer
12.10.2010 23:48
Второе с конца решай. Сначала sqrt(50) затем sqrt(49+sqrt(50)) ну и так далее
volvo
12.10.2010 23:50
Это стандартная задача на использование рекурсии, если что:
function f(n: integer): real; begin if n = 51 then f := 0 else f := sqrt(n + f(n + 1)); end;
// вызывать f(1)
TarasBer
12.10.2010 23:53
Если они рекурсию не проходили, то лучше циклом с конца. Дадут задание сделать через рекурсию - будет такое решение. А пока что это "предварительная пессимизация"
volvo
13.10.2010 0:00
Циклом - это значит "процедуры/функции нафиг не нужны, но мы будем их втыкать, потому что задание такое" - еще большая пессимизация. Кстати, не надо думать, что все компиляторы одинаковые. Если компилятор умеет оптимизировать хвостовую рекурсию - то работать будет быстрее (по крайней мере, не медленнее) того цикла, который ты будешь выдумывать. А выглядит - приятнее.
TarasBer
13.10.2010 0:20
> Если компилятор умеет оптимизировать хвостовую рекурсию
Ну вообще да, я просто забыл, что кроме ботланда есть и другие производители сред разработки...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.