Я построил рекурсивную функцию для вычисления значений треугольника Паскаля.
Есть ли способ его оптимизировать?
Краткое напоминание о треугольнике Паскаля: C (n, k) = C (n-1, k-1) + C (n-1, k) Мой код:
int Pascal(int n, int k) {
if (k == 0) return 1;
if (n == 0) return 0;
return Pascal(n - 1, k - 1) + Pascal(n - 1, k);
}
Я вижу неэффективность в том, что он сохраняет некоторые значения дважды. Пример: С (6,2) = С (5,1) + С (5,2) С (6,2) = С (4,0) + С (4,1) + С (4,1) + С (4,2) он вызовет C (4,1) дважды
Есть идеи, как оптимизировать эту функцию?
Спасибо