Hướng dẫn giải của [200 đề thầy Đức] Bài 47: Bắt tay
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải
Có n người trong hội nghị, mỗi người bắt tay với tất cả những người còn lại. Tính tổng số lượt bắt tay.
Cách làm
- Mỗi cặp hai người chỉ bắt tay đúng một lần (A bắt tay B thì B bắt tay A cũng chính là một lần đó).
- Số cặp người là n * (n - 1) / 2. Với n = 4, ta có 4 * 3 / 2 = 6 lượt, khớp với ví dụ.
- Phép nhân trước rồi chia cho 2 luôn cho kết quả nguyên vì n * (n - 1) luôn chẵn.
#include <bits/stdc++.h>
using namespace std;
int main() {
long long n;
cin >> n;
// Mỗi cặp người bắt tay đúng một lần, nên số lượt bắt tay là n*(n-1)/2
long long ketqua = n * (n - 1) / 2;
cout << ketqua << "\n";
return 0;
}
Bình luận