Hướng dẫn giải của [200 đề thầy Đức] Bài 24: Những con gấu


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

Gấu BearA có cân nặng A, gấu BearB có cân nặng B (A <= B). Mỗi năm BearA tăng gấp 3, BearB tăng gấp 2. Tìm số năm ít nhất để BearA nặng hơn BearB.

Cách làm
  • Ban đầu kiểm tra: A <= B nên chưa nặng hơn, số năm đếm từ 0.
  • Trong khi A vẫn chưa lớn hơn B: nhân A với 3, nhân B với 2, và tăng số năm lên 1.
  • Khi A > B thì dừng, số năm đếm được chính là đáp số.

Ví dụ: A = 4, B = 7. Sau năm 1: 12 và 14 (chưa hơn). Sau năm 2: 36 và 28 (đã hơn). Đáp số là 2. Các số đều nhỏ nên long long là đủ.

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long a, b;
    cin >> a >> b;
    int nam = 0;
    // Mỗi năm: cân nặng BearA nhân 3, cân nặng BearB nhân 2
    // Lặp cho đến khi BearA nặng hơn BearB
    while (a <= b) {
        a = a * 3;
        b = b * 2;
        nam++;
    }
    cout << nam << "\n";
    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.