Hướng dẫn giải của [LOOP_HNCODE_18] Số chia hết cho X


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

Cho hai số nguyên dương n và x ~1 \le n, x \le 1000~, hãy tìm số nhỏ nhất chia hết cho x mà lớn hơn n.

Cách làm

Lấy phần nguyên n / x rồi cộng thêm 1 được số k. Khi đó k·x là bội của x đầu tiên lớn hơn n. Ví dụ n = 49, x = 10: 49 / 10 = 4, k = 5, kết quả 50.

Nếu muốn tránh suy luận, có thể tăng dần một số từ n+1 cho đến khi chia hết cho x, nhưng cách trên đơn giản hơn.

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

int main() {
    int n, x;
    cin >> n >> x;
    // Bội của x đầu tiên lớn hơn n: lấy phần nguyên n/x rồi cộng 1 lần x
    int k = n / x + 1;
    cout << k * x << "\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.