IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> нужно понять функцию, рекурсивная ф-я
Jenkins
сообщение 22.03.2007 1:32
Сообщение #1


Manowar
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской
Реальное имя: CaHek

Репутация: -  0  +



FUNCTION F(X:integer):integer;
BEGIN
IF X<=1 THEN F:=X
ELSE IF ODD(X) THEN F:=F(5*X+1)+1
ELSE F:=F(X div 6)+1;
END

значение функции при х=46 будет 5
(нужно объяснить почему ,как работает функция)

заранее спасибо


--------------------
Into Glory Ride
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
hiv
сообщение 22.03.2007 11:06
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Это рекурсия - когда функция вызывает саму себя. Показать как это работает нетривиально, но можно... Посмотри как это будет вычисляться:
Код
   X   F    CODE
  46        X div 6
   7        5*X+1
  36        X div 6
   6        X div 6
   1        X
   1   1    F:=X
   6   2    F:=F(X div 6)+1
  36   3    F:=F(X div 6)+1
   7   4    F:=F(5*X+1)+1
  46   5    F:=F(X div 6)+1


Сообщение отредактировано: hiv - 22.03.2007 11:09


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"