Как избавиться от переполнения стека при глубокой рекурсии? - 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д