Форум программистов, компьютерный форум CyberForum.ru

Как заменить цикл while на рекурсию? - C++

Восстановить пароль Регистрация
 
cHuVbaka
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 120
16.01.2014, 14:57     Как заменить цикл while на рекурсию? #1
Как сделать в даной функции, вычисления через рекурсию, а не через цикл...
тут происходит розложение в ряд Тейлора,

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
double getf(double x, double eps) // значение по разложению
{ 
    double first = x;
    double member = 1/first;
    int k = 3;
    double ret = 0.0;
    
    while (eps < fabs(member))
    {
        ret += member;
        first *= x*x;
        member = 1/(k*first);
        k += 2; 
    }
    
    return 2*ret;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2014, 14:57     Как заменить цикл while на рекурсию?
Посмотрите здесь:

C++ заменить на цикл for
C++ Как это задание сделать через рекурсию?
std::map (заменить цикл на грамотный алгоритм) C++
заменить рекурсию на цикл C++
Рекурсию в цикл C++
Как сделать, чтобы switch работал как цикл? C++
C++ Заменить некоторые члены последовательности используя цикл for
Как обойти рекурсию? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
16.01.2014, 15:11     Как заменить цикл while на рекурсию? #2
Вместо цикла while надо проверять значение условием
и уже в теле условия выполнить рекурсию:
C++
1
2
3
4
5
if(eps < fabs(member))
{
    //........
    getf(first, eps);
}
Возможно понадобится доработка...
Yandex
Объявления
16.01.2014, 15:11     Как заменить цикл while на рекурсию?
Ответ Создать тему
Опции темы

Текущее время: 09:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru