在C ++中找到n面凸多边形中的对角线数

假设我们有一个数字n,我们必须找到n边的凸多边形的对角线数。因此,如果n = 5,则对角线计数将为5。

由于这是n边的凸多边形,因此可以从每个顶点绘制n – 3个对角线,从而留下两个相邻的边顶点及其本身。因此,对于n个顶点,它将为n *(n-3),但是正如我们正在考虑的两倍,因此它将为n(n – 3)/ 2。

示例

#include<iostream>
using namespace std;
int diagonalCount(int n) {
   return n * (n - 3) / 2;
}
int main() {
   int n = 8;
   cout << n << " sided convex polygon has " << diagonalCount(n) << " diagonals";
}

输出结果

8 sided convex polygon has 20 diagonals