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

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

Восстановить пароль Регистрация
 
c0der
 Аватар для c0der
1 / 1 / 1
Регистрация: 03.08.2010
Сообщений: 41
08.08.2010, 11:15     Рекурсия #1
Сегодня баловался с рекурсией.
получилось типа цикла, только из функции

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
#include <iostream>
using namespace std;
unsigned long int myFunc(int a)
{
        if(a < 2)
        {
                return 0;
        }
        else
            {
                a--;
                cout << a << "\n";
                myFunc(a);
            }
}
 
 
int main ()
{
int a;
cin >> a;
myFunc(a);
 
int stop;
cin >> stop;
return 0;
}
Почему 200/299 самое максимальное число которое может вывести, если в переменную "a" ввести даже 1000 ?
а в этом случае доходит до 89000 и выводит ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
 
if(a <= 100000)
        {       a++;
                cout << a << "\n";
                myFunc(a);
 
        }
        else
            {
                return 0;
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2010, 11:15     Рекурсия
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
08.08.2010, 14:41     Рекурсия #2
c0der, Наступает переполнение стека.
Максимально пожалуй может вызываться 4772 раза функция. А дальше переполнение
Yandex
Объявления
08.08.2010, 14:41     Рекурсия
Ответ Создать тему
Опции темы

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