Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาจำนวนเส้นทแยงมุมในรูปหลายเหลี่ยมนูนด้าน n ใน C++


สมมติว่าเรามีตัวเลข 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