с номером 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-го и т. д.(рисунок).
Можно организовать хранение только части элементов, необходимых для вычисления заданного, например в структуре данных типа «стек». В стек «откладываются» невычисленные значения. Текущие вычисления выполняются с элементом из вершины
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа