[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;
}
(m)(m)(m)(m)(m)(m)(m)(m)(m)
ReplyDelete=D
ReplyDeletesao nhập 5 100 11 hấn ra 42
ReplyDeletenguu
Delete