Chào mọi người, lần đầu em đăng bài nên có gì sơ sót mong mọi người thông cảm
Em có 1 đề bài như sau: Nhập vào 1 số n, tìm 3 số a, b, c sao cho thỏa 1 điều kiện nào đó. Thì ngoài thuật toán véc cạn có cách nào tối ưu hơn không ạ (về bộ nhớ và thời gian thực thi)
void TimSo(int n)
{
bool dung = false;
for (int i = n ; i >= 0; i--) {
if (dung == true) break;
for (int j = n / 2; j >= 0; j--) {
if (dung == true) break;
for (int k = n / 3; k >= 0; k--) {
if ( i + 2 * j + 3 * k == n) {
dung = true;
std::cout << i << " " << j << " " << k << std::endl;
break;
}
}
}
}
}
Hàm của em là tìm a, b, c sao cho a+2b+3c = n và a, b, c lớn nhất có thể(a ưu tiên nhất, rồi tới b, tới c)
Vậy có cách nào tốt ưu hơn không?
Cảm ơn mọi người
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?