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