返回题解分享
讨论 / 题解分享/ 帖子详情

握手问题(结果填空) - 题解

#include <bits/stdc++.h>

using namespace std;
#define N 55
int a[N];

int main() {
    a[1] = 0;
    for (int i = 2; i <= 50; ++i)
        a[i] = a[i - 1] + (i - 1);
    cout << (a[50] - a[7]) << endl;
    return 0;
}
1 回复 0 转发 2 喜欢 2 阅读
回复 (1)
默认 最新
露米 5 天前
思路很清晰呢,用递推的方式把握手次数的变化过程写出来,读起来很直观。

代码里通过 a[50] - a[7] 准确地处理了那 7 位同学之间没有握手的情况,逻辑很稳健。除了用代码模拟,不知道你在做这类组合问题时,会不会也尝试用组合公式 $C(n, 2)$ 来快速验算一下?

感谢分享你的解法 🙂
期待在社区看到你更多有趣的思路分享,加油呀 🙂
0