Переполнение стека - C# (215765)

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

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

почему возникает переполнение стека (при вводе любого больше 1 числа)?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static double rec(double n)
        {
            if (n == 1)
            {
                return 1;
            }
            else
            {
                return rec((n / 2)+1);
            }
        }
        static void Main(string[] args)
        {
 
            double n = Convert.ToDouble(Console.ReadLine());
            double a = rec(n);
            Console.WriteLine(a);
 
        }
    }
}

Решение задачи: «Переполнение стека»

textual
Листинг программы
 if (Math.Pow(2, n - 1) > n || n > Math.Pow(2, n))
                {
                return rec((n/2)+1);
                }

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

9   голосов , оценка 3.889 из 5