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.

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
  1. 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).

  2. Giải phương trình ta được k = x - 2y.

  3. 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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.