假设我们有一个数字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