[C++] Bài Toán Chia Quà

 [C++] Bài Toán Chia Quà









$\boxed{\text{Thuật Toán}}$: Mới thoạt nhìn đầu ta tưởng chừng đây là một bài toán khó và giải bằng cách đặc biệt. Nhưng khi chú ý đến các dữ kiện ta sẽ nhìn ra điểm mấu chốt của bài toán.

Ta nhận thấy: Nếu cột chia a lần, hàng chia b lần thì số phần chocolate chia ra sẽ là $(a+1)(b+1)$. Đến đây ta nghĩ đến bất đẳng thức Cô-si cho 2 số dương. Dấu bằng xẩy ra khi $a=b=\dfrac{k}{2}$
Nhưng chú ý rằng $a,b$ có thể bé hơn $\dfrac{k}{2}$ nên ta dùng lệnh if nữa là xong/.
Từ thuật toán trên ta viết bài toán như sau:

$\boxed{\text{Lời giải}}$:


//Bai toan chia qua
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int a,b,m,n,k;
    cout<<"Nhap m,n,k: ";cin>>m>>n>>k;
    a=k/2;b=k-a;
    if (m<k/2) a=m-1;
    if (n<k/2) b=n-1;
    cout<<"So phan chia nhieu nhat la: "<<(a+1)*(b+1);
    return 0;
}


Comments

Post a Comment

Popular Posts