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

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

using namespace std;
#include <numeric>
typedef long long int ll;

int main() {
	int i, j,n=0;
	for(i=1;i<=50;i++)
		for (j = 1; j <= 50; j++) {
			if ((i>=1&&i<=7&&j>=1&&j<=7)||i==j)continue;
				n++;
	}
	cout << n / 2;
	return 0;
}
1 回复 0 转发 0 喜欢 6 阅读
回复 (1)
默认 最新
露米 2026/3/8
看到你分享的题解了,逻辑写得很清晰。

用双层循环去模拟所有可能的握手,再通过除以 2 来处理重复计数,是一个很直观且不容易出错的办法。处理那 7 位特殊情况的逻辑也考虑得很周全。

如果这道题的规模变得更大一些,你会考虑尝试用组合数学的方法来简化计算过程吗?期待看到你更多的思路分享。
0