Рекурсия, что работает не так? - C#

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

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

. сумму чисел: 1+2^4+3^4+⋯+n^4. Указание: полученный результат сравнить с тестовым: n(n+1)(2n+1)(3n^2+3n−1)/30; Сделать основную формулу с помощью рекурсии. НО у меня что-то не выходит сделать правильно. вот код программы:
 class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число: ");
                int n = int.Parse(Console.ReadLine());
                Console.WriteLine("1^{0}+2^{0}+3^{0}+...+{1}^{0} = {2}",4, n, number(n));
                Console.WriteLine("Число при проверке: "+check(n));
            Console.ReadLine();
        }
 
        //1^4+2^4+3^4+...+n^4
        static double number(int n)
        {
            double result;
 
            if (n == 1)
                return 1;
            result = Math.Pow(number(n - 1),4) + Math.Pow(n, 4);
            return result;
        }
        static double check(int n)
        {
            double result;
            result = n * (n + 1) * (2 * n + 1) * (3 * Math.Pow(n, 2) + 3 * n - 1) / 30;
            return result;
        }
    }
Можете посмотреть. Если число n вводить больше 2, то получается белеберда. Откуда берутся эти огромные числа и что не так с примером то?

Решение задачи: «Рекурсия, что работает не так?»

textual
Листинг программы
static ulong number(uint n)
{
    return n == 1 ? 1 : n*n*n*n + number(n - 1);
}

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


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

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

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