Рекурсия, что работает не так? - 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);
}