题目描述
小蓝组织了一场算法交流会议,总有50人参加了本次会议。在会议上,大家
进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一
次握手(且仅有一次)。但有7个人,这7人彼此之间没有进行握手(但这7人
与除这7人以外的所有人进行了握手)。问这些人之间一共进行了多少次握
手?
注意A和B握手的同时也意味着B和A握手了,所以算作是一次握手。
算法1
50个人相互握手,7个人彼此不握手
也就是 50个人相互握手的次数 - 7个人相互握手的次数
N个人握手,每个人要握N - 1次,因为握手是相互的,所以结果除二
C++ 代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout << (50 * 49 - 7 * 6) / 2 << endl;
return 0;
}
算法2
模拟每个人还需要和多少个人握手,第i个人需要握50-i次
到最后7个人时只剩对方,不需要握手
C++ 代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int result = 0;
for (int i = 49; i >= 7; i--)
{
result += i;
}
cout << result << endl;
return 0;
}