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

составить программу с исп. рекурсии и без нее - C++

Восстановить пароль Регистрация
 
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
18.02.2013, 13:44     составить программу с исп. рекурсии и без нее #1
Вычислить √(1+√(2+√(3+ √n )) )
Написать написано, а вот рекурсия работает не так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<iostream.h>
#include<math.h>
double f(int n)
{
    if (n==1) return 1;
    else
    
        
        return sqrt(f(n-1)+n);
    
}
int main ()
{
    int n,i;
    double s=0.;
 
    cout<<"Vvedite n:";
    cin>>n;
    cout<<endl;
    for (i=n; i>=1;i--)
    
 
        s=sqrt(s+i);
        
    
        cout<<"Result s="<<s<<endl;
            cout<<"Result S="<<f(n)<<endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2013, 13:44     составить программу с исп. рекурсии и без нее
Посмотрите здесь:

C++ Можно ли на С++ как-то свернуть стек для выхода из рекурсии, а не последовательно выходить из нее?
C++ О 8 ферзях(Без рекурсии)
Опр длинну строк без исп strlen C++
C++ Составить программу вычисления матрицы по формуле, и подсчитать для нее определенные значения.
Составить программу для кодирования некоторого текста до 50 символов, заменяя каждую букву на пятую после нее букву из а C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
18.02.2013, 17:55     составить программу с исп. рекурсии и без нее #2
C++
1
2
3
4
5
6
7
8
9
double f(int n)
{
    if (n==1) return 1;
    else
    
        
        return sqrt(f(n-1)+sqrt(1.0*n));
    
}
Добавлено через 1 час 52 минуты
ошибочка вышла
C++
1
2
3
4
5
6
7
8
9
10
double f(int n)
{
    static int count = 0;
    ++count;
    if (n==1)
        return sqrt(1.0*count);
    else {      
        return sqrt(count + f(n - 1));      
    }    
}
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
18.02.2013, 18:01     составить программу с исп. рекурсии и без нее #3
SummerRain, а что будет, если вашу функцию вызвать больше одного раза?
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
18.02.2013, 18:27     составить программу с исп. рекурсии и без нее #4
Цитата Сообщение от SeregaC++ Посмотреть сообщение
SummerRain, а что будет, если вашу функцию вызвать больше одного раза?
Я об этом тоже думал, но в условии этого не требуется. И, конечно, это легко поправить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
double f(int n)
{
    static int count = 0;
    ++count;
    if (n==1) {
        double buf = sqrt(1.0*count);
        count = 0;
        return buf;
    }
    else {      
        return sqrt(count + f(n - 1));      
    }    
}
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
18.02.2013, 18:36  [ТС]     составить программу с исп. рекурсии и без нее #5
SummerRain, спасибо) функция вызывается единожды, поэтому прокатит и так
Yandex
Объявления
18.02.2013, 18:36     составить программу с исп. рекурсии и без нее
Ответ Создать тему
Опции темы

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