Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Số nguyên dương lớn nhất chia hết cho C và nằm trong khoảng [A, B] trong C++

Cho ba số nguyên A, B, C. Tìm số nguyên dương lớn nhất X sao cho X mod C = 0 và X nằm trong đoạn [A, B]. (Lưu ý: nội dung gốc có nhầm lẫn với bài tìm số nhỏ nhất không trong khoảng, đây là phiên bản sửa chính).

Giải pháp: Tìm bội số lớn nhất của C không vượt quá B. Nếu bội số đó >= A thì đó là kết quả, ngược lại không tồn tại.

Ví dụ minh họa

#include <iostream>
using namespace std;

int findMaxNumber(int a, int b, int c) {
    int maxMultiple = (b / c) * c;
    if (maxMultiple >= a)
        return maxMultiple;
    return -1; // Không tồn tại
}

int main() {
    int a = 5, b = 10, c = 4;
    cout << "So nguyen duong lon nhat X: " << findMaxNumber(a, b, c);
    return 0;
}

Kết quả

So nguyen duong lon nhat X: 8