Как избавиться от переполнения стека при глубокой рекурсии? - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день, Я написала рекурсивную функцию которая считает сложение дробей при n = 1000 программа выдает ответ, а если n = 10000 то выдает ошибку "process is terminated due to stackoverflowexception" я понимаю что ошибка из за глубокой рекурсии но нам нужно использовать именно рекурсию и n = 10000 есть ли способ обойти ошибку?
static double sum(int len)
    {
        if (len <= 1)
        {
            return 1;
        }
        else
        {
            double number = 1.0 / len;
            return number + sum(len - 1);
        }
    } 
 
  int n = 1000;
  sum(n);

Решение задачи: «Как избавиться от переполнения стека при глубокой рекурсии?»

textual
Листинг программы
        static double sum(int len)
        {
            if (len <= 1)
            {
                return 1;
            }
            else
            {
                return 1.0 / len + sum(len - 1);
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы