Значение математической константы - C#

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

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

Привет всем! С прошедшим первым днем весны)) Надо написать программу, которая могла бы приблизительно рассчитывать значение математической константы е, используя формулу е = 1+1/1!+1/2!+1/3! + Е.., определить максимальное количество элементов в формуле расчета числа е, при котором достигается точность 0,00001 Сказали, что можно через рекурсии:
class ProgramRecurs
    {
        static void Main(string[] args)
        {
 
            ConsoleApplicationCursor1.Program21.Main(new string[] {} );

                //RecursFunk(0);

            Console.ReadKey();
        }
        static int RecursFunk(Int16 n)
        {
            Console.WriteLine(n);
            n++;
 
            try
            {
                if (n <= 15000) RecursFunk(n);
                else return 0;
            }
            catch
            {
                Console.WriteLine("Error!!!!");
            }
           
            return n;
        }
 
    }
Буду очень вам благодарен! Хорошего дня!)

Решение задачи: «Значение математической константы»

textual
Листинг программы
class Program
    {
        static void Main(string[] args)
        {
            int max;
            Console.WriteLine(E(0.0000000001, out max));
            Console.WriteLine("Максимальное число слагаемых - " + max);
            Console.ReadKey();
        }
 
        public static double E(double epsilon, out int maximumItems)
        {
            maximumItems = 0; //максимально число слагаемых
            double e = 0.0; //число Е, которое будет вычислено
            double i; // 1/n!
            int n = 0; // n!
            do
            {
                i = 1 / (double)Factorial(n++);
                e += i;
                maximumItems++;
            }
            while (i > epsilon);
 
            return e;
        }
 
        private static decimal Factorial(int n)
        {
            if (n < 0)
                throw new ArithmeticException();
 
            if (n == 0 || n == 1)
                return 1;
 
            decimal f = 1;
            for (int i = 1; i <= n; i++)
                f *= i;
 
            return f;
        }
}

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


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

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

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