Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/47: Рейтинг темы: голосов - 47, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 8
.NET 5

Рекурсивный код выдаёт ошибку: System.StackOverflowException: "Exception_WasThrown" Stack overflow.

14.10.2021, 17:26. Показов 9756. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, прошу помочь с рекурсией на C#

Задание находится во вложении.

Вот сам код:
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
using System;
 
namespace Lab3__3
{
    class Program
    {
        static int n;
        static void Main(string[] args)
        {
            n = 3;
            Console.WriteLine("Ответ\n");
            Console.WriteLine(Fn(1));
            Console.ReadKey();
        }
 
        static double Fn(double i)
        {
            if (i != n)
                return n / (Math.Sqrt(i + Fn(Math.Sqrt(i + 1))));
            else
                return n / (Math.Sqrt(i + n));
        }
    }
}
При активации кода выдаёт ошибку: System.StackOverflowException: "Exception_WasThrown" Stack overflow.

А это выводит в консоль.

Repeat 10701 times:
--------------------------------
at Lab3__3.Program.Fn(Double)
--------------------------------
at Lab3__3.Program.Main(System.String[])
Миниатюры
Рекурсивный код выдаёт ошибку: System.StackOverflowException: "Exception_WasThrown" Stack overflow.  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2021, 17:26
Ответы с готовыми решениями:

В свойстве возникает исключение System.StackOverflowException: "Exception_WasThrown"
У меня есть пользовательский компонент - кнопка с закруглёнными углами. В свойстве, отвечающем за радиус её закругления возникает...

RAD studio, выдает ошибку stack overflow при загрузке компонентов в программу
Скачала RAD studio с официального сайта, когда загрузила и начала устанавливать, сначала на 1/4 установки установка прервалась с сообщением...

System.StackOverflowException, рекурсия, рекурсивный алгоритм
Добрый день! Нужно написать рекурсивный алгоритм перемножения матриц А и В на C#. (строка 131) На 134 строке останавливает и пишет...

23
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
14.10.2021, 22:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от memphis Посмотреть сообщение
Та не.
Костыльная в том, что фактически это замена обычного цикла рекурсивным методом.
То есть "Рекурсии ради рекурсии".
Никакой малейшей пользы от неё нет.
0
198 / 93 / 43
Регистрация: 09.11.2019
Сообщений: 414
14.10.2021, 22:38
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Костыльная в том, что фактически это замена обычного цикла рекурсивным методом.
Ну я под костыльной понимал, что она разбита на два метода и неясно, какой именно вызывать, что влечет за собой выдумывание имен для методов. Хорошим решением в данном случае стала как раз локальная функция.
0
 Аватар для memphis
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 564
14.10.2021, 23:14
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Костыльная в том, что фактически это замена обычного цикла рекурсивным методом.
То есть "Рекурсии ради рекурсии".
Никакой малейшей пользы от неё нет.
Так автору темы нужна рекурсия. Он её получил. Ради чего она, - ради самой рекурсии или ради иных возвышенных и трепетных целей - ну хз, не моё дело.
Про пользу не понял. Она решает задачу, чем не польза?. Если вы про то, что простым циклом проще будет, то - да, безусловно. Я бы добавил, что и понятнее. Но только нужна рекурсия. Это как студентам задают ряд Фибоначчи рекурсивно считать, все мы знаем, что рекурсия - худший способ для этой задачи. Но закавыка в том, что им, авторам, нужна рекурсия и всё тут.

Цитата Сообщение от __Corey Посмотреть сообщение
под костыльной понимал, что она разбита на два метода и неясно, какой именно вызывать
То, что она разбита на два метода, нет никакого преступления. Из самой формулы следует, что она нужна только для знаменателя. Метод, возвращающий значение пользователю - публичный и виден ему. Рекурсивный - приватный и не виден юзеру. Как его назвать - вообще вопрос десятый.
0
1531 / 535 / 127
Регистрация: 09.01.2018
Сообщений: 1,738
17.10.2021, 09:21
Цитата Сообщение от RockyDown Посмотреть сообщение
прошу помочь с рекурсией на C#
Тут рекурсивная функция должна вычислять знаменатель от i, но возвращать значение, только когда i станет равно 1.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
       static void Main(string[] args)
        {
            //N = 5
            var res = F(5, 5, 0);
            Console.WriteLine(res);
        }
 
        static double F(int i, int n, double denom)
        {
            denom = Math.Sqrt(i + denom);
            if (i == 1) return n / denom;
            return F(i - 1, n, denom);
        }
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2021, 09:21

Исправить ошибку Stack overflow
что значит stack overflow и как это исправить?код: #include<stdio.h> #include<stdlib.h> void quicksort (int *a,int l,int r); int...

Наследование. Вызвано исключение: System.StackOverflowException. Как исправить ошибку
Доброго времени суток! Не могу понять, как исправить ошибку. Понимаю, что программа не может найти путь к данным. Но как это исправить?...

Линкер выдает ошибку Error: Fixup overflow
Здравствуйте. Делаю лабку на асме. Писал себе спокойно, тестировал попутно. Но в один момент линкер (после успешной компиляции) стал...

При запуске выдает ошибку System.InvalidOperationException: "The specified cast from a materialized 'System.Decimal'
ошибка выдается на этом моменте ObservableCollection < Plane > planes = new ObservableCollection<Plane>(result_planes); вот как...

Выдаёт ошибку Overflow, никак не могу понять что с этим можно сделать
Sub Primer5() Dim a As Double, b As Double, S As Double, x As Double, i As Integer, z As Integer Dim N As Integer N =...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Знание — сила: Доктрина интенциональности знаний против массовых профанаций
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru