Мне для выполнения задания потребовалось найти число Бернулли. Переписал этот код с Pascal на C++. Код: #include <iostream>
using namespace std;
// {подсчет числа сочетаний без факториала}
double combine(int n, int m) {
double c = 1;
for (int i = 1; i <= m; i++)
c = c * (n - i + 1) / i;
return c;
}
// {подсчет чисел Бернулли с рекурсией}
double bernoulli(int n) {
if (n == 0) return 1;
else if (n == 1) return -0.5;
else if (n > 1 && n % 2 == 1)
{
return 0; // {если N>1 и нечетное, то =0}
}
double s = 0;
for (int k = 1; k <= n; k++) {
double t = bernoulli(n - k); // {запомним результат и очистим стек памяти}
s += combine(n + 1, k + 1) * t; // {вычислим следующее значение суммы}
}
return s * (-1) / (n + 1); // {вычислим число Бернулли}
}
int main() {
int n;
cout << "n = ";
cin >> n;
cout << bernoulli(n);
return 0;
}
Полезные ссылки: