Составить алгоритм и написать программу на языке Pascal:
Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями:
F(n) = F(n-1)+ F(n/2), при n>1 и n кратно 2 F(n)=f(n-1) + F(n-2) , при n >1 и n не кратно 2 F(1)=1 Чему равно значение функции F(8)?
Аноним:
На каком языке надо писать, Вам совершенно все равно?. И потом, что значит "написать алгоритм"? По-русски написать?
Хотя... в Вашей формулировке "составить алгоритм" может означать и мысленное построение алгоритма, поэтому достаточно привести текст программы.
да если можно по русски
Здесь всё по русски и понатно, я уже давно исправил формулировку. А если Вам и это не понятно, то здесь Вам делать нечего.
Ответы
Ответ дал:
2
function F(n:integer):integer;
begin
if n=1 then F:=1
else
if (n mod 2)=0 then F:=F(n-1)+F(n div 2)
else F:=F(n-1)+F(n-2)
end;
begin
Writeln('F(8)=',F(8))
end.
Результат выполнения программы:
F(8)=24
F(1)=1 (по условию)
F(2)= F(2-1)+F(2/2)= F(1)+F(1)=1+1=2 F(3)=F(3-1)+F(3-2)=F(2)+F(1)=3 F(4)=F(4-1)+F(4/2)=F(3)+F(2)=5
F(5)= F(5-1)+F (5-2)=F(4)+F(3)=8, F(6)=F(6-1)=F(6/2)=F(5)+F(3)=8, F(7)=F(7-1)+F(7-2)=F(6)+F(5)=19, F(8)=F(8-1)+F(8/2)=F(7)+F(4)=19+5=24.
Как-то так)
Не понял...а я, выходит, не на Паскале запускал программу?
О...нашел....действительно ошибка, у меня F при копировании куда-то делось... должно быть F(n-1)+F(n div 2)
Кстати, да! Я заметил отсутствие F, когда проверял)
Ну оно в формуле есть и в программе было....почему пропало - непонятно совершенно... а я сначала копирую программу, потом еще раз её в буфер забираю и запускаю, чтобы убедиться, что все вставилось... а тут так пропало, что оказалось все равно синтаксически верно....(((
Bcghfdbk e;t
Исправил уже
Вас заинтересует
2 года назад
2 года назад
2 года назад
7 лет назад
7 лет назад
9 лет назад
9 лет назад