Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2012, 22:14   #1
victor5133
Форумчанин
 
Регистрация: 05.10.2010
Сообщений: 107
По умолчанию Рекурсия

Здравствуйте! Мне нужно составить программу, которая для заданного целого неотрицательного числа n
вычисляет значение функции f (n) . Функция f (n) определена в виде:
f(0)=0 f(1)=1 f(2n)=f(n) f(2n+1)=f(n)+f(n+1)

Подскажите как ее хотя бы математически решить, а то я даже смысла не понимаю.

Спасибо.
victor5133 вне форума Ответить с цитированием
Старый 25.04.2012, 22:38   #2
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Код:
int f (int n) {
  if (n % 2) { // если n - нечетное
    return f((n - 1) / 2) + f((n + 1) / 2));
  } else {  // если n - четное
    return f(n / 2);
  }
}
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 26.04.2012, 10:39   #3
victor5133
Форумчанин
 
Регистрация: 05.10.2010
Сообщений: 107
По умолчанию

все равно не пойму, пропишите пожалуйста код полность..

Последний раз редактировалось victor5133; 26.04.2012 в 11:24.
victor5133 вне форума Ответить с цитированием
Старый 26.04.2012, 13:22   #4
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Я реализовал Вам эту функцию, остальное за Вами
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсия shedi Общие вопросы C/C++ 0 28.02.2011 22:47
рекурсия shelest Помощь студентам 3 14.04.2010 10:12
рекурсия qwerty98765 Помощь студентам 1 10.04.2010 15:22
Рекурсия seeton Помощь студентам 0 08.12.2009 17:41