Hướng dẫn giải của [200 đề thầy Đức] Bài 108: Tuổi cha và tuổi con
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
Biết tuổi cha là x và tuổi con là y. Hỏi sau bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con. Nếu không bao giờ xảy ra thì in -1.
Cách làm
Gọi k là số năm cần tìm. Sau k năm, tuổi cha là x + k và tuổi con là y + k. Điều kiện cha gấp đôi con là x + k = 2 * (y + k).
Giải phương trình ta được k = x - 2y.
Nếu k âm thì điều đó không bao giờ xảy ra (vì số năm không thể âm), nên in -1. Nếu k không âm thì in k.
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while (t > 0) {
int x, y;
cin >> x >> y;
// Sau k năm: x + k = 2 * (y + k), suy ra k = x - 2 * y
int k = x - 2 * y;
// Nếu k âm nghĩa là không bao giờ xảy ra
if (k < 0) {
cout << -1 << "\n";
} else {
cout << k << "\n";
}
t--;
}
return 0;
}
Bình luận