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

นับสามเหลี่ยมมุมฉากที่มีเส้นรอบรูปกำหนด ใน C++

ได้รับเส้นรอบรูป P ของสามเหลี่ยม ต้องการนับจำนวนสามเหลี่ยมมุมฉากที่มีเส้นรอบรูปเท่ากับ P

เงื่อนไข

  • a + b + c = P
  • a² + b² = c² (ทฤษฎีพีทาโกรัส)
  • ผลรวมด้านใดๆ 2 ด้าน > ด้านที่ 3

ตัวอย่าง

อินพุต: P = 12

เอาต์พุต: 1 (3, 4, 5)

อินพุต: P = 10

เอาต์พุต: 0

แนวทาง

  • ลูป a = 1..P/2, b = a+1..P/3
  • c = P - a - b
  • ตรวจสอบเงื่อนไขสามเหลี่ยมและ a²+b²=c²

ตัวอย่างโค้ด C++

#include <bits/stdc++.h>
using namespace std;

int rightTriangles(int p) {
    int count = 0;
    for (int a = 1; a < p/2; a++) {
        for (int b = a+1; b < p/3; b++) {
            int c = p - a - b;
            if (a + b > c && b + c > a && a + c > b) {
                if (a*a + b*b == c*c) ++count;
            }
        }
    }
    return count;
}

int main() {
    int perimeter = 12;
    cout << "Total number of right triangles that can be formed: " << rightTriangles(perimeter);
    return 0;
}

ผลลัพธ์

Total number of right triangles that can be formed: 1