Домашние задания: Информатика

СРОЧНО ИНФОРМАТИКА помогите с решением

Алгоритм вычисляет значение функции F(x) , где х – натуральное число. При этом:
F(x)=x-3 при x<3
F(x) = F(x/2)+2*x , при четных x>3
F(x)=F(x-1)+1 при нечетных x>3
Определи значение F(7) ?
Составим рекурсивную функцию.

var x : integer;
function F ( x : integer) : integer;
begin
if x <= 3 then F := (x - 3) else
if (( x > 3) and (x mod 2 = 0)) then F := (F(x div 2) + 2*x) else
if ((x > 3) and (x mod 2 <> 0)) then F := F(x-1) + 1;
end;

begin
X := 7;
Write (' F (7) = ', F(X));
end.


Ответ:
F(7) = 13
Михаил Окунев
Михаил Окунев
73 229
Лучший ответ
F(7) = F(6) + 1 (так как 7 - нечетное число)
F(6) = F(3) + 2*6 = 3 + 12 = 15 (так как 6 - четное число)
F(3) = 3 - 3 = 0 (так как 3 < 3)

Итак, мы нашли F(6) = 15 и F(3) = 0. Подставляем в первую формулу и получаем:

F(7) = F(6) + 1 = 15 + 1 = 16

Ответ: F(7) = 16.
Михаил Окунев У меня вызывает сомнение условие задачи. Везде строгие неравенства:
x < 3; x >3
А вот при x = 3 функция не определена.

Я поставил не строгое неравенство:
F (x) = (x - 3) при x <= 3 и получил F(7) = 13...
Для вычисления F(7) следует применить третье условие, так как 7 не является четным числом и больше трех: F(7) = F(7-1) + 1 = F(6) + 1 Затем следует применить второе условие, так как 6 является четным числом больше трех: F(6) = F(6/2) + 2*6/2 = F(3) + 6 = 3 + 6 = 9 Итак, мы нашли, что F(7) = F(6) + 1 = 9 + 1 = 10. Ответ: F(7) = 10. Не смотри на решения выше, это ИИ.
AR
Angelika Ribalko
1 078