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

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

Восстановить пароль Регистрация
 
inesta
0 / 0 / 0
Регистрация: 30.03.2010
Сообщений: 19
10.05.2010, 22:23     рекурсия #1
Доброго времени суток. Уважаемые ГУРУ, есть одна проблема. Ниже представлен код, в котором параметр 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++
Рекурсия (на С) C++
Рекурсия C++
рекурсия C++
Рекурсия C++
C++ Рекурсия
C++ Рекурсия
Рекурсия C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FireNovel
 Аватар для 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
окей, спс. Разобрался
Yandex
Объявления
10.05.2010, 23:11     рекурсия
Ответ Создать тему
Опции темы

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