Математические функции

Для заданного натурального числа k и действительного x подсчитать следующее выражение:
изображение_2021-06-11_201242
Хотелось бы узнать все ли тут правильно, если нет то что именно тут не правильно

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите значение n:");
            byte n = byte.Parse(Console.ReadLine());
            Console.Write("Введите значение x:");
            double x = double.Parse(Console.ReadLine());
            double b=1,p=1;
           
            for (byte i = 1; i <=n;++i )
            {
                b *= x;
                p=(1+(Math.Pow(x,2*n+1))/(n*(n+1)));
            }
            Console.WriteLine("p={0:f2}",p);
            Console.ReadKey();
        }
    }
}

Так запустите и проверьте, если результат совпадает с ожидаемым — значит правильно. :kolobokbatya:

Ну я сравнивлся с калькулятором вроде бы значения совпадают. Меня больше всего интересует все ли правильно по коду?

Так по формуле начальное значение n должно быть равно единице, а не произвольное на усмотрение пользователя.
Вместо n количество итераций задается значением k.

То есть мне еще цикл for надо будет переделать?

Просто начальному n присвоить 1.
Вводить произвольный k и относительно этого значения считать итерации.

не используется нигде дальше :thinking:

n раз присваивается одно и то же.

Это потому что нет в теле цикла

n += n;

И да b не понятно для чего :thinking:

P. S.
Может подразумевается

b = b*p;

P. P. S.
Могу ошибаться, но скорей всего должно быть как то так:

{
    Console.WriteLine("Количество итераций:");
    int k = Convert.ToInt32(Console.ReadLine());
    Console.Write("Введите x:");
    double x = Convert.ToDouble(Console.ReadLine());
    Console.Write("Введите множитель:");
    double b = Convert.ToDouble(Console.ReadLine());
    double p;

    for (int i = 0; i < k; ++i)
    {
        p = (1 + (Math.Pow(x, 2 * n + 1)) / (n * (n + 1)));
        b = b * p;
        n += n;
    }
    Console.WriteLine("b={0:f2}", b);
    Console.ReadKey();
}

Тогда проще сразу p *= .......

Разве не N в образе і меняется от 1 до K ?

p * = (1+(Math.Pow(x,2*i+1))/(i*(i+1)));

Ото то так. Только если i-й вложить в формулу сколько раз он сложится за одну итерацию?

Тут ошибка: n- отсутствует в текущем контексте

Что мешает инициализировать перед циклом?

int n = 1;

P. S.
И как рекомендовал Alex P., переменную b лучше убрать.