top1编程
← 返回题目
题解

【入门】需要举办多少场足球赛?

1 条题解

  • 0
    @ 2026-7-31 15:09:49

    解题思路

    n 个球队,任意两个队都要比一场,问总共多少场比赛。

    思路:组合数。

    这就是从 n 个队里选 2 个队比赛,选法的总数是组合数 C(n,2):

    场次 = n × (n-1) ÷ 2

    为什么是这个公式? 每个队要和另外 n-1 个队比赛,所以看起来是 n×(n-1) 场。但 A 和 B 比赛与 B 和 A 比赛是同一场,被算了两遍,所以要除以 2。

    举例:4 个队

    • 场次 = 4×3÷2 = 6 场

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
    
        cout << n * (n - 1) / 2;  // C(n,2)
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(1)
    • 空间复杂度:O(1)
    • 1