Рекурсивный метод вычисления выражения - C#

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

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

Приветствую. Нужно написать рекурсию для вот такого выражения: Сколько бьюсь никак не могу додумать. Вот код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace _14
{
    class Program
    {
        static double f(double t)
        {
            if (t > 0)
                return Math.Sqrt (Math.Sqrt(t) + Math.Sqrt(f(t-1)));
            else
                return 0;
        }
 
        static void Main(string[] args)
        {
            double z = 0;
            Console.Write("введите n: ");
            int n = int.Parse(Console.ReadLine());

            z = f(n);
 
            double rez = n / z;
            Console.WriteLine("F(N)= " + rez);
 
        }
    }
}
Мне нужно понять что нужно написать в этой строке после return:
return Math.Sqrt (Math.Sqrt(t) + Math.Sqrt(f(t-1)));
Посчитав вручную выражение рекурсии от 3 равно 1,7520651 p.s. ошибся при написании названия темы - не обращайте внимания

Решение задачи: «Рекурсивный метод вычисления выражения»

textual
Листинг программы
    public static void Main()
    {
        int n = 3;
        var x = Rec(n);
        Console.WriteLine(n/x);
    }
    
    private static double Rec(int n, int x = 1)
    {
        if (n == x) return Math.Sqrt(x);
        
        return Math.Sqrt(x + Rec(n, x + 1));
    }

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


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

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

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