Рекурсия, что работает не так? - C#
Формулировка задачи:
. сумму чисел: 1+2^4+3^4+⋯+n^4. Указание: полученный результат сравнить с тестовым: n(n+1)(2n+1)(3n^2+3n−1)/30;
Сделать основную формулу с помощью рекурсии. НО у меня что-то не выходит сделать правильно. вот код программы:
Можете посмотреть. Если число n вводить больше 2, то получается белеберда. Откуда берутся эти огромные числа и что не так с примером то?
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; } }
Решение задачи: «Рекурсия, что работает не так?»
textual
Листинг программы
static ulong number(uint n) { return n == 1 ? 1 : n*n*n*n + number(n - 1); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д