#include <math.h> #include <iostream> #include <iomanip> using namespace std; int n, num, count1 = 0, count2 = 0; int rec(int i, int j) { if (j == 0 || j == i) { num = 1; count1++; return num; } num = rec(i - 1, j - 1) + rec(i - 1, j); count1++; return num; } int main() { cin >> n; int i = 0, j = 0; for (i = 0; i < n; i++) { cout << fixed << setw(1 + n * 3 - i * 3); for (int j = 0; j <= i; j++) { cout << rec(i, j) << fixed << setw(6); } cout << "\n"; } cout << "\n" << count1 << "\n"; for (i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { if (j == 0) { num = 1; count2++; } if (i == 0 && j == 0) break; if (j == i) { num = 1; count2++; break; } int a = 1, b = 1, c = 1; for (int k = 1; k <= i; k++) { a *= k; count2++; } for (int k = 1; k <= j; k++) { b *= k; count2++; } for (int k = 1; k <= i - j; k++) { c *= k; count2++; } } } cout << "\n" << count2 << "\n"; return 0; } Код #include <math.h> #include <iostream> #include <iomanip> using namespace std; int n, num, count1 = 0, count2 = 0; int rec(int i, int j) { if (j == 0 || j == i) { num = 1; count1++; return num; } num = rec(i - 1, j - 1) + rec(i - 1, j); count1++; return num; } int main() { cin >> n; int i = 0, j = 0; for (i = 0; i < n; i++) { cout << fixed << setw(1 + n * 3 - i * 3); for (int j = 0; j <= i; j++) { cout << rec(i, j) << fixed << setw(6); } cout << "\n"; } cout << "\n" << count1 << "\n"; for (i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { if (j == 0) { num = 1; count2++; } if (i == 0 && j == 0) break; if (j == i) { num = 1; count2++; break; } int a = 1, b = 1, c = 1; for (int k = 1; k <= i; k++) { a *= k; count2++; } for (int k = 1; k <= j; k++) { b *= k; count2++; } for (int k = 1; k <= i - j; k++) { c *= k; count2++; } } } cout << "\n" << count2 << "\n"; return 0; } Можете объяснить как работает задача? ТРЕУГОЛЬНИК ПАСКАЛЯ Если что там 2 метода итеративная и рекурсивная