Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2017, 20:29   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Почему рекурсия прерывает работу программу при больших числах? - C++

Добрый вечер. Подскажите пожалуйста, почему рекурсия прерывает работу программу, если например m я ввожу свыше 4500. Это выражение в функции рекурсии считает сумму ряда. Спасибо
Код:
#include <iostream>
#include <cmath>
using namespace std;
 
 
double recurs(double u,double m,double i)
{
 
    while(i<=m)
        {   
            u=u+((2*i+1)/pow(i,2));
            return recurs(u,m,i+1);
        }
    return u;
}
int main()
{
 
 
    long double m=0,u=0,i=1;
    cout<<"Enter m"<<endl;
    cin>>m;
    
    u=recurs(u,m,i);
    cout<<"Result of recursion: "<<u<<endl;
    
    return 0;
}
Вероника99 вне форума Ответить с цитированием
Старый 04.12.2017, 20:47   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

1. Потому что стек ограничен и по дефолту небольшой
2. Зачем там цикл, если он всегда выполняется 0 или 1 раз. Это же просто иф.
p51x вне форума Ответить с цитированием
Старый 04.12.2017, 21:25   #3
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Чтобы понять рекурсию, надо её расписать. Возьми на листе бумаги покажи все вызовы и возвраты копий функций (конечно же параметры тоже не забывай)... А лучше начни не со своего примера, а с чего-нибудь по проще (например, как показано в любой книге, с расчёта факториала)...

С первых попыток, такое у всех происходит, скорей всего запутаешься, - ничего, делай попытки дальше.
ura_111 вне форума Ответить с цитированием
Старый 04.12.2017, 22:36   #4
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию

Так и думала,что стек. Спасибо за ответы,все учту
Вероника99 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что вас мотивирует, почему вы предпочитаете именно работу за компьютером, работу программиста? sgasgar Свободное общение 47 03.05.2016 07:27
Класс "БольшиеЧисла" ошибка при 7 значных числах Aleksander550 Помощь студентам 0 16.01.2015 22:10
Exit и Break не прерывает цикла DarkHacker Общие вопросы Delphi 12 26.12.2014 23:55
почему не работает рекурсия IT-Lopata C# (си шарп) 9 27.03.2014 22:17
почему работает рекурсия ryouzaki Помощь студентам 1 02.11.2013 19:10