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

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

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

рекурсия - C++

10.05.2010, 22:23. Просмотров 340. Ответов 2
Метки нет (Все метки)

Доброго времени суток. Уважаемые ГУРУ, есть одна проблема. Ниже представлен код, в котором параметр b должен быть всегда положительным(чтобы предотвратить бесконечную рекурсию). Но нужно убрать ограничение, требующее, чтобы аргумент был неотрицательным. Я уж много пробовал, но видно не в том русле двигаюсь. Помогите пжлст, можно код не писать, только совет. У меня постоянно ошибка и зависает компилятор. Скорее всего может наступить переполнение стека вызовов(с) - так оно и есть. Начал изучать ассемблер параллельно, но пока могу делать ошибки оперируя терминами. Регистр - сверхбыстрая память до 32 бит. Так? А стек тогда что? Часть памяти в самом регистре или метод ее сохранения и вызова? Тут я начал плавать (
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
#include<iostream.h.>
#include<conio.h>
 
int mystery(int, int);
 
main()
{
       int x, y;
       
       cout << "Vvesti 2-a celuh chisla: ";
       cin >> x >> y;
       cout << "Result " << mystery(x, y) << endl;
 
getch();
return 0;
}
 
int mystery(int a, int b)
{
     if(b==1)
        return a;
     else 
        return a + mystery(a, b -1);
}
GRACIAS!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2010, 22:23     рекурсия
Посмотрите здесь:

Рекурсия - C++
Разработать рекурсивную функцию не возврашающую значений: Дано натуральное четное число n. Разработать функцию для вывода на экран...

Рекурсия - C++
Помогите пожалуйста как это можно написать. Y=(2*n+1)!!*(2*m+1)!!/(2*(m+n)+1)!!,где m,n неотрицательные целые числа.Для определения...

РЕкурсия - C++
Мне нужно 5 задач по рекурсии с решениями,)))есмли не сложно-помогите, может ссылочку куда или что-нибудь)))заранее благодарен

Рекурсия - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;iostream&gt; int main() { int mass = {0}, ...

Рекурсия - C++
Как переделать программу в рекурсию? char S='S', T='T', M={NULL}; int ST=5,i=0,j=0; int TS; void Per() { M=S; ...

Рекурсия - C++
Есть задача, написал решение но ответ неправильный. Задача: Решение: #include &lt;iostream&gt; using namespace std; int a, n, m, t,...

Рекурсия - C++
Вот какой самый простой пример рекурсии я обнаружил в интернете: #include &lt;iostream&gt; using namespace std; int factorial(int n) { ...

Рекурсия - C++
Помогите написать функцию которая будет считать эту рекуррентную формулу с помощью рекурсии

Рекурсия - C++
Сделайте одну програмку используя рекурсию. Очень нужно... Срочно. 1. Реализовать поиск НОД; 2. Возвести число в целую степень; ...

Рекурсия - C++
Не понимаю каков будет порядок действий в функции допустим когда(level =2). По тому как я понял работает рекурсия, когда начнется алгоритм...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
10.05.2010, 23:00     рекурсия #2
параметр b должен быть всегда положительным
зделай его
C++
1
unsigned int b
ну, или перед первым if() в mystery поставь проверку корректности b
inesta
0 / 0 / 0
Регистрация: 30.03.2010
Сообщений: 19
10.05.2010, 23:11  [ТС]     рекурсия #3
Цитата Сообщение от FireNovel Посмотреть сообщение
зделай его
C++
1
unsigned int b
ну, или перед первым if() в mystery поставь проверку корректности b
окей, спс. Разобрался
Ответ Создать тему
Опции темы

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