Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Решение. Функция Odd(X) принимает значение истина при нечетном аргументе X



Функция Odd(X) принимает значение истина при нечетном аргументе X.

-> F(26) = F(26 div 2) + 2 = F(13) + 2, т.к. аргумент четный;

-> F(13) = F(13*3 + 1) + 1 = F(40) + 1, т.к. аргумент нечетный;

-> F(40) = F(40 div 2) + 2 = F(20) + 2, т.к. аргумент четный;

-> F(20) = F(20 div 2) + 2 = F(10) + 2, т.к. аргумент четный;

-> F(10) = F(10 div 2) + 2 = F(5) + 2, т.к. аргумент четный;

-> F(5) = F(5*3 + 1) + 1 = F(16) + 1, т.к. аргумент нечетный;

-> F(16) = F(16 div 2) + 2 = F(8) + 2, т.к. аргумент четный;

-> F(8) = F(8 div 2) + 2 = F(4) + 2, т.к. аргумент четный;

-> F(4) = F(4 div 2) + 2 = F(2) + 2, т.к. аргумент четный;

-> F(2) = F(2 div 2) + 2 = F(1) + 2, т.к. аргумент четный;

-> F(1) = 0, дошли до не рекурсивной ветки. Начинаем возврат, подставляя результаты внутренних вызовов (показано стрелками):

<- F(1) = 0,

<- F(2) = F(1) + 2 = 0 + 2 = 2;

<- F(4) = F(2) + 2 = 2 + 2 = 4;

<- F(8) = F(4) + 2 = 4 + 2 = 6;

<- F(16) = F(8) + 2 = 6 + 2 = 8;

<- F(5) = F(16) + 1 = 8 + 1 = 9;

<- F(10) = F(5) +2 = 9 + 2 = 11;

<- F(20) = F(10) + 2 = 11 + 2 = 13;

<- F(40) = F(20) + 2 = 13 + 2 = 15;

<- F(13) = F(40) + 1 = 15 + 1 = 16;

<- F(26) = F(13) + 2 = 16 + 2 = 18.

Ответ: F(26) = 18.





Дата публикования: 2015-01-14; Прочитано: 229 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...