с номером i уже


с номером i уже известны элементы с меньшими номерами, через которые он вычисляется. f[1]:=1; for i:=2 to n do if i mod 2=0 then f[i]:=f[i div 2] else f[i]:=f[(i-1) div 2]+f[(i+1) div 2]; Все. Один цикл и есть ответ. Однако мы нарушили условие задачи, да и недостатки решения очевидны. Какую бы размерность массива f мы ни объявляли, всегда можно задать элемент последовательности с номером i на единицу больший значения n. Кроме того, мы вычисляем все элементы последовательности, это недопустимая роскошь - выполнять лишнюю работу удел..., кроме того, не любой компьютер с этим «согласится». Пусть нам необходимо вычислить 49-й элемент. Он вычисляется через сумму 24-го и 25-го элементов, 24-й - равен 12-му, 25-й - через сумму 12-го и 13-го и т. д.(рисунок). Можно организовать хранение только части элементов, необходимых для вычисления заданного, например в структуре данных типа «стек». В стек «откладываются» невычисленные значения. Текущие вычисления выполняются с элементом из вершины
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz