С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bhbyr
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 29
#1

программа с рекурсивной функцией - C++

29.11.2012, 23:28. Просмотров 524. Ответов 9
Метки нет (Все метки)

написать программу на языке с++
решить задачу не используя операторы цикла
написать программу с рекурсивной функцией вычисляющей
0
Миниатюры
программа с рекурсивной функцией  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2012, 23:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос программа с рекурсивной функцией (C++):

Программа с рекурсивной функцией - C++
Друзья, помогите пожалуйста написать вот такую программу в Dev с++ Сколькими способами можно отобрать команду в составе 5 человек из 8...

Программа с рекурсивной функцией (расставляет между заданными шестью цифрами знаки операций) - C++
Написать программу с рекурсивной функцией, которая расставляет между заданными шестью цифрами знаки операций: сложения, вычитания,...

Написать программу с рекурсивной функцией - C++
Написать программу с рекурсивной функцией, вычисляющей: http://i065.***********/1212/09/1befc1906d10.png Добавлено через 14 часов 36...

Заполнение массива рекурсивной функцией - C++
привет! рекурсия....это хуже всего!!! (( А рекурсивная функция, которая заполняет массив целых чисел значениями, вводимыми пользователем,...

Создать структуру с рекурсивной функцией - C++
Создать структуру в которой ввод и вывод информации будет осуществлятся с помощью рекурсивной функции

Разница между рекурсивной функцией и обычной - C++
Как можно посчитать разницу между рекурсивной функцией и обычной? Там как то можно время работы функций высчитывать, как это сделать? Какие...

9
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.11.2012, 23:50 #2
Формула корявая. Подправте.
0
Bhbyr
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 29
29.11.2012, 23:51  [ТС] #3
всё правильно
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.11.2012, 23:58 #4
Bhbyr, ну значит мне показалась
Вот на скорую руку, как пример
C
1
2
3
4
5
6
7
double fun(unsigned n)
{
    static int i;
 
    return i == n ? sqrt(n) : sqrt(++i + fun(n));
}
// Можно без static реализовать, но мне лень
1
Bhbyr
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 29
30.11.2012, 00:00  [ТС] #5
пожалуйста
go, помоги напиши полностью ((
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.11.2012, 00:05 #6
Цитата Сообщение от Bhbyr Посмотреть сообщение
пожалуйста go, помоги напиши полностью ((
Тогда задание полностью скажите. Откуда берется n. Из файла, передается при запуске в командной строке, или во время рантайма передается? А может в коде задается?
0
activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
30.11.2012, 00:06 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
 
long double func(int n)
{
    if (n < 0)
        return -1.L;
    else
        return n ? sqrtl((long double) n + func(n - 1)) : 0.L;
}
 
int main()
{
    long double retval;
    if ( (retval = func(10)) != -1.L)
        std::cout << retval << '\n';
    else
        std::cerr << "error: value less of zero\n";
 
    std::cin.get();
    return 0;
}
2
Bhbyr
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 29
30.11.2012, 00:19  [ТС] #8
go, не знаю просто пример такой написан и всё ничего больше не сказанно
0
Bhbyr
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 29
30.11.2012, 18:57  [ТС] #9
правильно написала программу или нет
условие:
решить задачу не используя операторы цикла
написать программу с рекурсивной функцией вычисляющей



решение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
 
long double func(int n)
{
    if (n < 0)
        return -1.L;
    else
        return n ? sqrtl((long double) n + func(n - 1)) : 0.L;
}
 
int main()
{
    long double retval;
    if ( (retval = func(10)) != -1.L)
        std::cout << retval << '\n';
    else
        std::cerr << "error: value less of zero\n";
 
    std::cin.get();
    re
turn 0;
}



условие задачи вот внизу
0
Миниатюры
программа с рекурсивной функцией  
activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
30.11.2012, 20:55 #10
Bhbyr, мне кажется что я неверно написала решение. Моя функция вычисляет http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{n + \sqrt{n - 1 +...+ \sqrt{3 + \sqrt{2 + \sqrt{1}} } }} а это не соответствует ТЗ. Сейчас посмотрим как переделать.

Добавлено через 12 минут
я поняла как ее переделать, сейчас перепишу.

Добавлено через 1 час 6 минут
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
#include <cmath>
 
#define MAX_DEPTH (100)
#define DEFAULT_DEPTH (10)
 
class shit
{
    private:
        const int depth;// максимальная глубина рекурсии
        int beg, end;
        enum std_err
        {
            BAD_BEG = 1,
            BAD_END = 2,
            BEG_LARG = 4,
            BAD_DIFF = 8
        };
        bool good;
    public:
        shit() : depth(MAX_DEPTH), beg(1), end(1) {};
        shit(int __n) : depth(MAX_DEPTH), beg(1), end(__n), good(true)
        {
            if (this->end < this->beg)
            {
                this->end = DEFAULT_DEPTH;
                std::cerr << "bad value. variable 'end' set as DEFAULT_DEPTH\n";
            }
        }
 
        shit(int __m, int __n) : depth(MAX_DEPTH), beg(__m), end(__n), good(true)
        {
            this->exeption();
        }
        ~shit() {};
 
        void exeption()
        {
            int exept = 0;
 
            if (this->beg < 0)
                exept |= this->BAD_BEG;
            if (this->end < 0)
                exept |= this->BAD_END;
            if (this->beg > this->end)
                exept |= this->BEG_LARG;
            if (this->end - this->beg > this->depth)
                exept |= this->BAD_DIFF;
            if (this->call_exept(exept))
                this->good = false;
            else
                this->good = true;
        }
 
        bool call_exept(int num)
        {
            bool ret = false;
 
            if (num & BAD_BEG) {
                std::cerr << "bad begin value\n";
                ret = true;
            }
            if (num & BAD_END) {
                std::cerr << "bad end value\n";
                ret = true;
            }
            if (num & BEG_LARG) {
                std::cerr << "begin value is lergest end value\n";
                ret = true;
            }
            if (num & BAD_DIFF) {
                std::cerr << "very large recursion depth\n";
                ret = true;
            }
            return ret;
        };
 
        void set()
        {
            this->beg = 1;
            this->end =10;
            this->good = true;
        };
 
        void set(int __n)
        {
            this->end = __n;
            this->exeption();
        };
 
        void set(int __m, int __n)
        {
            this->beg = __m;
            this->end = __n;
            this->exeption();
        }
 
        int get_beg() {return this->beg;}
        int get_end() {return this->end;}
 
        long double rec_foo(int __beg, int __end)
        {
            if (this->good)
            {
                return __beg < __end ?
                    sqrtl((long double) __beg + this->rec_foo(__beg + 1, __end)) :
                    sqrtl(__end);
            }
            else
            {
                std::cerr << "bad object\n";
                return -1.L;
            }
        };
};
 
int main()
{
    shit ob1, ob2(5), ob3(3, 55);
 
    std::cout << "I'm ob2, and my recursion are: ";
    std::cout << ob2.rec_foo(ob2.get_beg(), ob2.get_end()) << '\n';
    std::cout << "I'm ob3, and my recursion are: ";
    std::cout << ob3.rec_foo(ob3.get_beg(), ob3.get_end()) << '\n';
 
    ob1.set(2, 70);
 
    std::cout << "I'm ob1, and my recursion are: ";
    std::cout << ob1.rec_foo(ob1.get_beg(), ob1.get_end()) << '\n';
 
 
    return 0;
}
2
30.11.2012, 20:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 20:55
Привет! Вот еще темы с ответами:

Нужно количество цифр с рекурсивной функцией - C++
Не могу найти ошибку. Надо найти кол-во цифр введённого числа с помощью рекурсивной функции. #include &lt;iostream&gt; using namespace...

Разобраться с рекурсивной функцией обхода бинарного дерева - C++
Люди, помогите разобраться с рекурсивной функцией обхода бинарного дерева. Бьюсь головой об стену, не могу понять как она работает. ...

Написать программу с рекурсивной функцией вычисляющий выражение - C++
Написать программу с рекурсивной функцией, вычисляющей: s=cos(1+sin(2+cos(3+sin(4+cos(5+…)…)), используется n вложений.

Создать программу с рекурсивной функцией, которая будет вычислять делится ли число на 11 или нет - C++
Создать прорамму с рекурсивной функцией, которая будет вычислять делится ли число на 11 или нет.


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.