题目:
Given a convex polygon with n vertices, we can divide it into several separated pieces, such that every piece is a triangle. When n = 4, there are two different ways to divide the polygon; 2 When n = 5, there are five different ways. Give an algorithm that decides how many ways we can divide a convex polygon with n vertices into triangles.
代码:
int gettypes(int n) {
if (n <= 3)return 1;
int sum = 0;
for (int i = 2; i <= n - 1; i++) {
sum += gettypes(i) * gettypes(n - i+1);
}
return sum;
}
int main() {
int res = gettypes(4);
return 0;
}
想法:
卡特兰数